一、说明,配置是在rsync服务基层上的配置过程。
二、必须保证rsync服务端部署成功,客户端能够往服务器端推送命令。
三、安装配置inotify
(1)检查系统是否支持inotify
[[email protected] local]# ls -l /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Dec 9 20:51 max_queued_events
-rw-r--r-- 1 root root 0 Dec 9 21:31 max_user_instances
-rw-r--r-- 1 root root 0 Dec 9 20:51 max_user_watches
[[email protected] local]#
(2)下载inotify-tools-3.14.tar.gz
[[email protected] ~]#tar -zxvf inotify-tools-3.14.tar.gz
[[email protected] ~]#cd inotify-tools-3.14
[[email protected] ~]#./configure --prefix=/usr/local/inotify
[[email protected] ~]#make && make install
(3)安装完成后,写事件监控脚本
[[email protected] ~]#vim inotify.sh
#/bin/bash
#tangbo 2015-12-20
host01=192.168.11.31 #ip地址
src=/data/www/www #待同步的目录
dst=www
user=rsnyc_backup
rsync_passfile=/etc/rsync.password
inotify_home=/usr/local/inotify-tools-3.14/
#################################
if [ ! -e "$src"] || [ ! -e "${rsync_passfile}" ] || [ ! -e "${inotify_home}/bin/inotifywait" ] || [ ! -e "/usr/bin/rsync" ]
then
echo "Check File and Folder!" #检查文件和文件夹
exit 9
fi
#########
#############
{inotify_home}/bin/inotifywait -mrq --timefmt ‘%d%m%y %H%M‘ --format ‘%T %w%f‘ -e close_write,delete,create,attrib @src
#inotify整个的命令
while read file
do
# rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src [email protected]$host01::$dst >/dev/null 2>&1 #注释这个可以实现,效果不是很好
cd $src && -aruz -R --delete ./ --timeout=100 [email protected]$host01::$dst --password-file=${rsync_passfile} >/dev/null 2>&1
done
exit 0
####finish######
(4)后台执行脚本 sh inotify.sh &
ps -ef | grep inotify
(5)配置成功,测试同步情况。