配置rsync+inotify实时同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置rsync+inotify实时同步相关的知识,希望对你有一定的参考价值。

与上一篇同步做

技术分享图片

配置rsync+inotify实时同步

1:调整inotify内核参数

在linux内核中,默认的inotify机制提供三个调控参数:max_queue_events、max_user_instances、max_user_watches,分别表示监控事件队列、最多监控实例数、每个实例最多监控文件数

[[email protected] opt]# cat /proc/sys/fs/inotify/max_queued_events 
16384
[[email protected] opt]# cat /proc/sys/fs/inotify/max_user_instances 
128
[[email protected] opt]# cat /proc/sys/fs/inotify/max_user_watches 
8192

当要监控的目录、文件数量较多或者变化比较频繁时,建议加大这三个参数的值,例如:直接修改/etc/sysctl.conf配置文件,将管理队列设为32 768,实例数设为1024,监控数设为1048 576(建议大于监控目标的总文件数)

[[email protected] ~] vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048567
[[email protected] ~] sysctl -p
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048567

2:安装inotify-tools

使用inotify机制还需要安装inotify-tools,一边提供inotifywait和inotifywatch辅助工具程序,用来监控和汇总改动情况。inotify-tools下载地址“http://inotify-tools.sourceforge.net/

[[email protected] ~] tar zxvf /abc/inotify-tools-3.14.tar.gz -C /opt/
[[email protected] ~] cd /opt/inotify-tools-3.14/
[[email protected] inotify-tools-3.14] ./configure 
[[email protected] inotify-tools-3.14] make && make install

以监控网站目录/var/www/html为例,可以先执行inotifywait命令,然后在另一个终端向/var/www/html目录下添加、移动文件,跟踪频屏幕输出结果。其中-e指定监控事件,-m为持续监控,-r递归整个目录,-q简化输出信息

修改同步源服务端的rsyncd.conf里面的read = no重启服务端,在客户端执行:inotifywait -mrq -e modify,create,move,delete /var/www/html不要动它重启个客户端的窗口在/var/www/html底下创建,监控服务器会出现绘画窗

技术分享图片

编写触发脚本并执行免交互

vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ [email protected]::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done

cd /opt
chmod +x inotify.sh
./inotify.sh     //执行脚本

以上是关于配置rsync+inotify实时同步的主要内容,如果未能解决你的问题,请参考以下文章

配置rsync+inotify实时同步

rsync下行同步rsync+inotify实时同步(同步如饮水一样简单)

Centos 配置rsync远程同步及使用inotify+rsync实时备份

Rsync结合Inotify 实时同步配置

配置rsync+inotify实时同步

配置inotify+rsync实时同步