当前位置: 首页 > ops >正文

28Rsync免密传输与定时备份

rsync免密码交互传输

方法一:使用--password参数

在rsync语句最后加上--password-file=密码文件,即可自动提取密码文件中的密码

创建密码文件
[root@123456 ~]# echo 123456 > rsync.pass修改密码文件权限
[root@123456 ~]# chmod 600 rsync.pass 使用--password参数
[root@123456 ~]# rsync -avz 123 rsync_backup@192.168.74.129::backup --password-file=/root/rsync.pass
sending incremental file listsent 48 bytes  received 16 bytes  128.00 bytes/sec
total size is 0  speedup is 0.00

方法二:使用rsync的内置变量RSYNC_PASSWORD

    在执行rsync推送的过程中先查找RSYNC_PASSWORD 里面是否存在密码,默认里面为空,如果没有会提示让用户输入密码,如果有直接使用变量中的密码

注意:直接执行 RSYNC_PASSWORD=123456 只在当前 shell 会话生效,若 rsync 命令在子进程中执行(某些情况下会发生),可能无法继承该变量。

解决方法:使用export 定义RSYNC_PASSWORD为全局变量

[root@123456 ~]# export RSYNC_PASSWORD=123456
[root@123456 ~]# rsync -avz 123 rsync_backup@192.168.74.129::backup
sending incremental file listsent 48 bytes  received 16 bytes  128.00 bytes/sec
total size is 0  speedup is 0.00

rsync --delete参数

作用:无差异同步

 案例1:当前处于192.168.74.128

把192.168.74.128的home目录同步到192.168.74.129的home目录

案例2:当前处于192.168.74.128

把192.168.74.129的home目录同步到192.168.74.128的home目录

rsync 对路径末尾是否带 / 非常敏感,直接决定了 “同步目录本身” 还是 “同步目录内的内容”:

  • 源路径不带 /:会将整个源目录(包括目录本身)同步到目标目录下。
  • 源路径带 /:只会将源目录内的内容(文件 / 子目录)同步到目标目录下,不会创建额外的目录。
[root@123456 home]# rsync -avz --delete  192.168.74.129:/home/ /home

总结就是,--delete 后面跟的是谁,就是谁不动,另一个同步成这个

如果遇到电脑中病毒,或者文件被修改损坏,即可把数据还原

--bwlimit 带宽限速

限制传输速度

[root@123456 home]# rsync -avz --delete  --bwlimit=1KB 192.168.74.129:/home/ /home

Rsync备份案例

客户端需求:

1.客户端提前准备存放的备份的目录,目录规则如下: 以主机名称IP地址和时间命名

2.客户端在本地打包备份存放至创建的目录中

3.为备份文件做一个md5校验文件

4.把校验文件和备份文件发送至备份服务器

5.客户端本地保留最近7天的数据, 避免浪费磁盘空间

1.客户端提前准备存放的备份的目录,目录规则如下: 以主机名称IP地址和时间命名
DATE=date +%F-%H-%M
dir=`hostname`_`hostname -I`_$Date
mkdir -p /backup/$d2.客户端在本地打包备份存放至创建的目录中
[root@123456 ~]# tar -zcvf /backup/$dir/etc_$DATE.tar.gz /etc/hosts $>/dev/null3.为备份文件做一个md5校验文件
[root@123456 ~]# md5sum /backup/$dir/*.tar.gz >/backup/$dir/md5.log4.把校验文件和备份文件发送至备份服务器
[root@123456 ~]# rsync -avz /backup/$dir/ rsync_backup@192.168.74.129::backup5.删除七天外的文件节省空间
[root@123456 ~]# find /backup/ -mtime +7|xargs rm -rf

客户端每天凌晨1点定时执行该脚本

服务端需求:

1.服务端部署rsync,用于接收客户端推送过来的备份数据

2.服务端需要每天校验客户端推送过来的数据是否完整

3.服务端需要每天校验的结果通知给管理员

4.服务端仅保留6个月的备份数据,其余的全部删除

1.服务端需要每天校验客户端推送过来的数据是否完整
[root@test backup]# cat check.sh 
DATE=`date +%F-%H-%M`
ho=123456_192.168.74.128_$DATE
md5sum -c /backup/$ho/md5.log > /backup/$ho/$DATE.log2.将校验后的结果发送到邮箱
mail -s "$Date 检查结果" 123456787@qq.com < /backup/$ho/$DATE.log &>/dev/null3.删除180天前的数据
find /backup -mtime +180|xargs rm -rf

客户端备份5分钟后,执行一次检查脚本

这是我的个人学习笔记,主要用于记录自己对知识点的理解和梳理。由于目前仍在学习探索阶段,内容中难免存在理解偏差或表述疏漏,恳请各位大佬不吝赐教,多提宝贵意见~ 若有不同看法,欢迎理性交流探讨,感谢包容与指正!

http://www.xdnf.cn/news/16834.html

相关文章:

  • 关于Web前端安全防御XSS攻防的几点考虑
  • Spring Boot 全 YAML 配置 Liquibase 教程
  • C++之vector类的代码及其逻辑详解 (中)
  • DockerFile文件执行docker bulid自动构建镜像
  • CMake指令:mark_as_advanced
  • Python序列去重高级指南:保持顺序的高效去重技术
  • 错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException
  • 云原生三剑客:Kubernetes + Docker + Spring Cloud 实战指南与深度整合
  • 分类任务当中常见指标 F1分数、recall、准确率分别是什么含义
  • 类似 Pixso 但更侧重「网页 / 软件界面设计」「前后端可视化开发」的工具
  • 【贪心】P11112 [ROI 2024] 机器人物流 (Day 1)|普及+
  • 基于python多光谱遥感数据处理、图像分类、定量评估及机器学习方法应用
  • Java函数式编程之【Stream终止操作】【下】【二】【收集器toMap()】【叁参数收集操作collect()】
  • Maven项目和Spring项目的异同
  • 企业资产|企业资产管理系统|基于springboot企业资产管理系统设计与实现(源码+数据库+文档)
  • Docker容器中文PDF生成解决方案
  • 计算机网络:为什么IPv6没有选择使用点分十进制
  • Pytorch-02数据集和数据加载器的基本原理和基本操作
  • Matplotlib - Python图表可视化利器
  • 面试小总结
  • vue引入阿里巴巴矢量图库的方式
  • 内网穿透系列十:高性能内网穿透工具 rathole,支持Docker一键部署
  • ubuntu 系统风扇控制软件 CoolerControl
  • AI驱动SEO关键词智能进化
  • Ubuntu18网络连接不上也ping不通网络配置问题排查与解决方法
  • Python 第一阶段测试题 答案及解析
  • 【正点原子K210连载】第二十四章 按键输入实验 摘自【正点原子】DNK210使用指南-CanMV版指南
  • Linux iptables防火墙操作
  • SQL 四大语言分类详解:DDL、DML、DCL、DQL
  • 【Go语言-Day 29】从time.Now()到Ticker:Go语言time包实战指南