Inotify+rsync实时同步工具实战
分别有机器:server-178/24,client-b-179/24,client-c-180/24
中心分发服务器Master:client-c-180/24
备份服务器 :client-b-179/24和server-178/24
基于备份服务器已经提供rsync --daemon的基础上,在中心分发服务器(rsync客户端)配置inotify,监控的目录设置为/www/
1.查看当前系统是否支持inotify
ls -l /proc/sys/fs/inotify/
[[email protected] tools]# ls -l /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Oct 31 03:34 max_queued_events
-rw-r--r-- 1 root root 0 Oct 31 03:34 max_user_instances
-rw-r--r-- 1 root root 0 Oct 31 03:34 max_user_watches
#显示这三个文件则证明支持
2.下载inotify源码包
利用secureCRT的rz功能把inotify-tools-3.13.tar.gz,上传中心分发服务器Master:client-c-180/24的/tools目录下。
[[email protected] tools]# pwd
/tools
[[email protected] tools]# ls
inotify-tools-3.13.tar.gz
sersync2.5_32bit_binary_stable_final.tar.gz
sersync2.5.4_64bit_binary_stable_final.tar.gz
3.编译安装inotify
[[email protected] tools]# tar zxf inotify-tools-3.13.tar.gz
[[email protected] tools]# cd inotify-tools-3.13
[[email protected] inotify-tools-3.13]# ./configure --prefix=/usr/local/inotify-tools-3.13
[[email protected] inotify-tools-3.13]# make &&make install
4.安装完成后在/server/scripts目录下编写一个脚本默认不存在,起名为:inotify_rsync.sh,需要自己编写,如下格式:
简单的脚本:
#!/bin/sh
#定义变量
SRC=/www/
[email protected]::www/ #对IP地址主机178
[email protected]::www/ #对IP地址主机179
PASS=/etc/rsync.password
INWT=/usr/local/inotify-tools-3.13/bin/inotifywait
RSYNC=/usr/bin/rsync
$INWT -mrq -e create,move,delete,modify $SRC | while read D E F;do
rsync -aruz --delete $SRC ${DST178} --password-file=${PASS} >/dev/null 2>&1
rsync -aruz --delete $SRC ${DST179} --password-file=${PASS} >/dev/null 2>&1
done
5.执行脚本命令:
sh inotify_rsync.sh & #这个是放到后台去执行“&
6.进入监控的目录,进行测试是否能成功同步
cd /www/