Rsync+inotify实现实时同步

首先修改/etc/sysctl.conf

fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
sysctl -p   

下载inotify软件包,解压

 tar xf inotify-tools-3.14.tar.gz 
 cd inotify-tools-3.14/
 ./configure && make && make install

监测/www/html/为例,复制窗口,在其目录下进行操作时,会有输出

inotifywait -mrq -e modify,attrib,create,delete,move /www/html/
-m是要持续监视变化。
-r使用递归形式监视目录。
-q减少冗余信息,只打印出需要的信息。
-e指定要监视的事件列表。
access 访问,读取文件。
modify 修改,文件内容被修改。
attrib 属性,文件元数据被修改。
move 移动,对文件进行移动操作。
create 创建,生成新文件
open 打开,对文件进行打开操作。
close 关闭,对文件进行关闭操作。
delete 删除,文件被删除。
选项参数介绍

实时监控inotify脚本

vim /opt/inotify
INOTIFY_CMD="inotifywait -mrq -e modify,attrib,create,delete,move /www/html/"
RSYNC_CMD="rsync -avzH --delete --password-file=/etc/rsync_passwd /www/html/ rsync://backuper@192.168.200.114:/www
root"
$INOTIFY_CMD |while read A B C 
do
        if [ $(pgrep rsync | wc -l ) -le 1  ]
        then
                $RSYNC_CMD
        fi
done
开启脚本后启动inotify实时监测,如果监测到输出信息后,执行if语句:过滤rsync进程,如果当前rsync没处于正在执行状态的话,就执行远程同步命令
备注

 

posted @ 2020-10-13 18:19  开心burukku  阅读(107)  评论(0编辑  收藏  举报