架构师的成长之路初片~rsync+inotify实时监控及同步

Rsync同步(数据同步)

同步操作

命令用法

--rsync  [选项]     源目录     目标目录

同步与复制的差异

--复制:完全拷贝源到目标

--同步:增量拷贝,只传输变化过的数据

 

rsync操作选项  
-n 测试同步过程,不做实际修改
-delete 删除目标文件夹内多余的文档
-a
归档模式,相当于-rlptgoD(D:保留设备文件及其他特殊文件    -o  -g     :保留文件的属主、数组标记         -p  -t  :保留文件的权限、时间标记       -l: 保留符号链接文件          -r  : 递归,包括目录、子目录及所有文件)
-v 显示详细操作信息
-z 传输过程中启用压缩、解压

rsync+ssh同步

与远程的ssh目录保持同步

rsync   [...]  user@host:远程目录      本地目录

rsync   [...]   本地目录       user@host:远程目录

 

服务端要求

开启ssh(22端口)服务,并提供授权的用户、密码

 

例子:

rsync -av /mydir   /todir        //同步目录本身

rsync -av /mydir/    /todir    //同步目录内容

 

例子:

同步a目录到b目录,且从b删除a目录没有的文件

 

 

 

 

 

用rsync命令报错集

原因:目标主机没有rsync命令

解决方案:在目标主机下载rsync命令即可

 

 

 

 

inotify-tools工具

 

下载地址:http://download.sf.net/inotify-tools/

标准的源码、编译安装即可

tar -xf inotify-...gz

cd inno..

./config --prefix=/opt

make && make install

 

inotifywait监控:

 

 

 

用循环解决实时监控

 

while  条件

do

  重复执行的事情

done

 

例子:

实时监控,且同步目录

前提:要做秘钥

 

vim /etc/rsync.sh

while /opt/myrpm/bin/inotifywait -rqq /mydir do   rsync -a --delete /mydir/ root@192.168.2.22:/opt/     done

chmod +x /etc/rsync.sh    //给一个执行权限
/etc/rsync.sh &    //把此脚本放入后台执行

如果在执行 成功,检测的时候失败。(解决方案)

把上面的每条命令在终端输入一次,如若成功。则复制粘贴此命令到脚本内

(有些时候,手写脚本在没有进行测试的时候。会有空格或者路径上的一些错误。导致脚本执行失败或者传输文件失败)

 

posted @ 2021-01-30 14:53  樱花泪  阅读(67)  评论(0编辑  收藏  举报