1、准备两台主机,我这里的系统是rhel7,分别是192.168.4.11和192.168.4.22
二、rsync命令的用法:
1、基本格式: rsync [选项] 目录1/ 目录2/
注意加斜线和不加斜线的区别,加斜线就是只同步目录下的文件
2、选项:列举一些常用的选项
-n //测试同步过程,不做实际修改
-r //递归,包括目录/子目录及所有文件
-l //保留符号链接文件
-a //归档模式,相当于-rlptgoD
--delete //删除目标文件夹内多于的文档
-z //传输中启用压缩/解压
-v //显示同步信息
3、测试远程同步:在4.11和4.22 /opt/dir1下测试,从4.11同步到4.22下
rsync -avz --delete /opt/dir1/ 192.168.4.22:/opt/dir1/
4、在测试过程中就会发现,会要求输入远程主机的密码
如何去掉密码的验证呢,用ssh密钥对
生成:在4.11主机上 :ssh-keygen
传递公钥到被远程端: ssh-copy-id 192.168.4.22
三、安装inotify-tools-3.13软件和基本使用
1、安装依赖:gcc,make
2、源码安装inotify-tools-3.13
3、得到命令:inotifywait
4、inotifywait 选项 目标文件夹
-m 持续监控 -r 递归目录 -q 减少输出信息
四、利用while循环+inotifywait+rsync实现实时同步
1、脚本
#!/bin/bash
while inotifywait -qqr /opt/dir1/ //监控该目录,如果发生变化,则执行下面的语句
do
rsync -az --delete /opt/dir1/ root@192.168.4.22:/opt/dir1/ //拷贝该目录到远端的主机,实时同步
done
2、可以直接放置在后台进行
3、测试,可以在11上创建文件或者修改,然后去22上查看是否有变化
原文地址:http://blog.51cto.com/453412/2073669