inotify服务:
当用户在A服务器上操作了数据,inotify会抓取出来,然后通知rsync,然后同步到rsync服务器。所以inotify服务器却是rsync的客户端服务器。
inotify性能比sersync强,inotify可能支持几百个图片,sersync可能一百所以就差不多了。
确认内核是否支持inotify 可通过ll /proc/sys/fs/inotify查看有三个文件即可。
rz上传inotify软件包
tar xf inotify-tools-3.123.tar.gz
cd inotify-tools-3.13
./configure --prefix=/usr/local/inotify-tools-3.13
make&&make install
cd ../
ln -s /usr/local/inotify-tools-3.13 /usr/local/inotify
/usr/local/inotify下有如下文件:
bin 执行文件 类似windows的exe文件
include 程序所需要的头文件
lib 动态链接的库文件
share 帮助文档
/usr/local/inotify-tools-3.13/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /backup 监听创建文件create
创建脚本:
#!/bin/sh
cmd="/usr/local/inotify/bin/inotifywait"
$cmd -mrq --format '%w%f' -e create,close_write,delete /backup|\
while read line
do
[ ! -e “$line” ] && continue
rsync -az --delete $line rsync_backup@192.168.44.40::oldboy --password-file=/etc/rsync.password
done
生产环境中需调整一下参数:
max_user_watches max_queued_events max_user_instances都调大些。
并发不是很大,10-100k文件 最多200个。