(一)rsync
1、rsync:是一个开源的快速备份工具,可以在不同主机之间同步整个目录
2、在远程同步中,一个是源端,一个是发起端
(1)源端负责文件的原始位置,发起端和源端的文件同步
(二)rsync的特点
1、拷贝文件、拷贝设备
2、连接文件
3、可以保持源文件或者目录的权限不变,时间、软硬链接、所有者、所在组等均可以保持不变
4、可以实现增量同步,只同步发生变化的数据,数据传输效率很高
5、支持匿名认证
(三)rsync的同步方式
1、完整备份,第一次同步都是完整的备份
2、往后的同步都是增量备份(差异备份),只同步变化的数据
(四)rsync的命令格式(Linux自带的软件)

1、命令选项
|--------------|-------------------------|
| -r | 递归模式,目录包含子目录里面的所有文件 |
| -l | 复制链接文件,软链接 |
| -v | 显示同步过程中的详细信息 |
| -z | 传输文件时,进行压缩 |
| -a | 归档模式,保留文件的权限、属性等等 |
| -p | 保留文件的权限标记(所有者,所在组) |
| -t | 保留时间标记(时间戳) |
| -g | 保留文件的所在组(管理员权限) |
| -o | 保留文件的所有者(管理员权限) |
| -H | 保留硬链接 |
| -D | 保留设备文件和其他特殊文件 |
| --delete | 删除目标位置有,但是原始位置没有的文件 |
(五)rsync的同步方式
1、下行同步:从源端同步到客户端
2、上行同步:从客户端同步到源端
(六)实验
1、架构
test1:源端
test2:客户端
(七)下行同步
1、修改配置文件


2、编辑密码文件


(1)赋权



3、创建同步目录

4、同步测试
(1)第一次同步全量同步
rsync -avz [email protected]::test /opt
rsync:发起同步命令
-avz :保留文件权限,v显示详细过程,z同步过程中对文件进行压缩
20.0.0.10::test :模块名称,不是目录名

(2)增量同步


5、免密同步


(八)上行同步
1、调整内核参数



2、安装工具inotify
rsync:同步速度很快,适合同步大文件,可以结合数据库同步使用
(1)inotify:通知接口,可以用来监控文件系统的各种变化情况,文件存取,删除、移动、修改都可
(2)inotify机制和rsync配合使用,既可以通知变化,可以是实现同步



3、配置目录监控
inotifywait -mrq -e modify,create,move,delete /opt/test/
-m :表示持续监控
-r :递归整个目录
-q :信息提示
-e :指定监控的事件 ,多个事件用逗号隔开



4、同步


5、监控+同步(同步脚本)



6、实时监控和同步
(1)添加到开机自启

(2)设置定时任务

7、批量删除大文件
(1)文件数量较多的情况下,例如百万和千万级别的文件,rm -rf *速度很慢,rsync可以实现快速删除大量文件



rsync --delete-before -a -H -y --progress --stats /home/blank/ /opt/testl
--delete-before :在传输的过程中那个进行删除
-a :归档模式
-H :硬链接
-y :输出过程信息
--progress :显示传输过程
--stats :显示文件的传输状态
/home/blank/ /opt/testl (blank没有的,test也要没有;blank有的,test也要有)

