远程实时增量备份 rsync
备份方式
- cp 本机复制
- scp 远程复制
- 推 (本地上传到远程服务器)
- 格式
- scp 1.txt root@ip:[路径]
- 例
- [root@m01 ~]# scp 1.txt root@172.16.1.41:/opt/
- 拉 (远程服务器文件下载到本地)
- 格式
- scp root@ip:[路径] ./
- 例
- [root@m01 ~]# scp root@172.16.1.41:/opt/2.txt
- rsync 远程复制/备份
- 支持 增量复制
- 全量备份
- 每次都是从头开始复制
- 增量备份
- 接续上次复制
- push
- 数据从本地(客户端)推送至服务端
- pull
- 数据从服务端拉取到本地(客户端)
- 本地方式(类似cp)
- 远程方式
- 类似于scp,又不同于scp, scp只支持全量备份,rsync支持增量备份和差异备份
- 守护进程方式(客户端和服务端)
- 借助inotify这个软件来实现实时同步
- -a #归档模式传输, 等于-tropgDl -t -r -o -p -g -D -l
- -v #详细模式输出, 打印速率, 文件数量等
- -P #显示同步的过程及传输时的进度等信息
- -z #传输时进行压缩以提高效率
- 其他(1)
- -r #递归传输目录及子目录,即目录下得所有目录都同样传输
- -t #保持文件时间信息
- -o #保持文件属主信息
- -g #保持文件属组信息
- -p #保持文件权限
- -l #保留软连接
- -D #保持设备文件信息
- -L #保留软连接指向的目标文件
- -e #使用的信道协议,指定替代rsh的shell程序(很少用)
- 其他
- --append # 指定文件接着上次传输中断处继续传输
- [root@m01 ~]# rsync -azvP --append 2.txt root@172.16.1.41:/root/test
- --append-verify # 使用参数续传(在断点续传之后,验证一下文件: 如果文件有修改,从头开始传; 没有,从断点处传输)
- --exclude=PATTERN # 指定排除不需要传输的文件
- [root@m01 ~]# rsync -avzP --append-verify --exclude=2.txt ./* root@172.16.1.41:/opt/
- --exclude-from=file # 按照文件指定内容排除
- [root@m01 ~]# rsync -avzP --append-verify --exclude-from=/tmp/exclude.txt ./* root@172.16.1.41:/opt/
- --bwlimit=100 # 限速传输(单位:MB)
- [root@m01 ~]# rsync -avzP --append-verify --bwlimit=10 ./* root@172.16.1.41:/opt/
- --delete # 让目标目录和源目录数据保持一致
- --password-file=xxx # 使用密码文件
- --port # 指定端口传输
- 目的:实现实时备份
- 开机自启动
- 格式
- systemctl enable --now 软件名
- 在客户端上传资料到"服务端rsync"
- 方式: 3中
- rsync_backup : 虚拟用户,只在数据传输时使用
- 172.16.1.41 : backup服务端的IP
- backup : 模块名称(注意语句中前边是两个冒号)
- 编写密码文件
- [root@backup opt]# echo "123456" > /etc/rsync.passwd
- 密码"1233456"就是 服务端rsync软件的的配置文件中设定的密码,要一致
- 授权"密码文件"
- [root@m01 ~]# chmod 600 /etc/rsync.passwd
- 上传备份
- [root@m01 ~]# rsync -avzP --password-file=/etc/rsync.passwd ./* rsync_backup@172.16.1.41::linux
- 定义环境变量
- export RSYNC_PASSWORD=123456
- 上传备份
- [root@m01 ~]# rsync -avzP ./* rsync_backup@172.16.1.41::linux
- 用到"实时监控软件"及语句
- 注意以下备份语句中密码输入方式为"将密码写入文件"(step2的方式2)
- -m 持续监控
- -r 递归
- -q 静默,仅打印时间信息
- --timefmt 指定输出时间格式
- --format 指定事件输出格式
- %Xe 事件
- %w 目录
- %f 文件
- -e 指定监控的事件
- access 访问
- modify 内容修改
- attrib 属性修改
- close_write 修改真实文件内容
- open 打开
- create 创建
- delete 删除
- umount 卸载
- dd if=/dev/zero of=3.txt bs=100M count=10