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