⼀、RSYNC概述
1、什么是rsync
rsync的好姐妹
sync 同步:刷新⽂件系统缓存,强制将修改过的数据块写⼊磁盘,并且更新超级块。
async 异步:将数据先放到缓冲区,再周期性(⼀般是30s)的去同步到磁盘。
rsync 远程同步:==remote synchronous==
数据同步过程
sync数据同步 => 保存⽂件(⽬标)=> 强制把缓存中的数据写⼊磁盘(⽴即保存),实时性 要求⽐较⾼的场景
asyn数据异步 => 保存⽂件(⽬标)=> 将数据先放到缓冲区,再周期性(⼀般是30s)的去同 步到磁盘,适合⼤批量数据同步的场景
2、rsync特点
可以镜像保存整个⽬录树和⽂件系统
可以保留原有的权限(permission,mode),owner,group,时间(修改时间,modify time),软硬 链接,⽂件acl,⽂件属性(attributes)信息等
传输==效率⾼==,使⽤同步算法,只⽐较变化的(增量备份)
file1.txt file2.txt file3.txt(A服务器)
rsync实现数据同步 => 只同步file3.txt => 增量备份 file1.txt file2.txt(B服务器)
⽀持匿名传输,⽅便⽹站镜像;也可以做验证,加强安全
3、rsync与scp的区别
两者都可以实现远程同步,但是相对⽐⽽⾔,rsync能⼒更强
① ⽀持增量备份
② 数据同步时保持⽂件的原有属性
yum -y install rsync
⼆、RSYNC的使⽤
1、基本语法
rsync同步操作
• 命令用法
– rsync [选项...] 源目录 目标目录
• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据
• rsync操作选项
– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档
– -a:归档模式,相当于-rlptgoD
– -v:显示详细操作信息
– -z:传输过程中启用压缩/解压
• 本地同步
– rsync [选项...] 本地目录1 本地目录2 //同步整个文件夹
– rsync [选项...] 本地目录1/ 本地目录2 //只同步目录下的数据
2、本地⽂件同步
本地⽂件同步简单理解就是把⽂件从⼀个位置(同步=>拷⻉)到另外⼀个位置(类似cp)
案例:f1、f2与f3,f1中创建三个⽂件file1、file2、file3,使⽤rsync本地同步
rsync同步中, 其中的文件folder 后面如果加斜杠/ 就是同步该目录底下的文件
同理呢,如果不加斜杠/ ,则就是同步整个目录,如下图:
案例:rsync -R选项的应⽤(保留相对路径)
案例:rsync --delete(删除⽬标⽬录⾥多余的⽂件)或者是进行修改
(1)删除:
不加 --delete 效果:
发现没有变化
加上 --delete:
发现进行同步删除了
(2)修改文件中的内容:
(3)修改文件的时间:
(4)修改文件的权限:
(5)进行远程同步:
3.找到服务配置文件并修改,同时创建一个对应的文件
修改配置文件,在最后一行加上以下三行
然后重启服务:
systemctl restart rsyncd
4.用which查找一下rsync,然后编辑一个计划任务
然后去192.168.1.60的机器上查看:
5.做用户之间的同步传输
首先在/etc/rsync.conf文件中添加账号和密码文件的路径
然后在vim /etc/rsync.secrets 创建编辑密码 账号:密码
给/etc/rsync.secrets添加权限
chmod 600 /etc/rsync.secrets
重启服务:
systemctl restart rsyncd
最后查看
三、做一个监控inotify-tools
1.安装监听工具
输入inotifywait -mr /app/ 就可以监控/app/了
然后双开,如另外一个上面创建一些东西,这边是能够监控到的
然后这个数据能够同步到我们的192.168.1.60这台机器
然后呢编辑一个脚本
运行它也就可以监控了,并且能够同步信息
但是呢他还是会一直荡在那个页面,
所以呢,我们可以做个小操作把他放在后台就不影响我们正常操作了