rsync+inotify实现服务器之间文件实时同步详解(2)

####安装inotify

[root@www rsync]# cd /usr/local/src/ [root@www src]# wget [root@www src]# tar zxvf inotify-tools-3.14.tar.gz [root@www src]# cd inotify-tools-3.14 [root@www inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify [root@www inotify-tools-3.14]# make [root@www inotify-tools-3.14]# make install

####创建rsync复制脚本
此项功能主要是将server端的目录/home/test/里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给client的/home/test里,下面是通过shell脚本实现的。

[root@www inotify-tools-3.14]# cd /usr/local/rsync [root@www rsync]# vi inotify_rsync.sh #!/bin/bash host=192.168.1.102 src=https://www.linuxidc.com/home/test/ des=test user=backup /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files do /usr/bin/rsync -vzrtopg --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des echo "${files} was rsynced" >>/data/logs/rsync.log 2>&1 done

其中host是client的ip,src是server端要实时监控的目录,des是认证的模块名,需要与client一致,user是建立密码文件里的认证用户。
####为.sh脚本增加764权限

[root@www rsync]# chmod 764 inotify_rsync.sh

####运行脚本

[root@www rsync]# sh /tmp/rsync.sh &

请记住,只有在备份服务器client端的rsync安装并启动rsync之后,在启动rsync.sh脚本,否则有时候会满屏出现:

rsync: failed to connect to 192.168.10.221: Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(107) [sender=2.6.8]

####我们还可以把rsync.sh脚本加入到开机启动项里

[root@www rsync]# echo "setsid /usr/local/rsync/rsync.sh &" >> /etc/rc.local

现在rsync与inotify在server端安装完成,rsync在备份服务器client端也安装完成。

现在去测试下吧,当然为了稳当起见,还是要重启测试下,自启动脚本是否正常运行,保证万无一失。以上操作也可以在一台服务器实现,同步目录到不同的目录。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8c0ddfbcc5b1baa5e188e30fc485ba6b.html