阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

rsync+inotify的使用注意事项

164次阅读
没有评论

共计 2061 个字符,预计需要花费 6 分钟才能阅读完成。

rsync+inotify 是一个比较常用的实时同步解决方案,但是它并不是在所有的场景中都适用的,rsync+inotify 比较适用的是在 10 台以下的一些小规模 web 集群中实时同步,不过在使用 rsync+inotify 解决方案和日常使用 rsync 不同,在 rsync+inotify 中 rsync 服务端需要部署多个而客户端只有一个,在 rsync 的客户端上做为日常内容发布的服务器从而由它把数据推送至各个各个 rsync 的服务端上。其中用来监控文件系统变化的工具是 inotify-tools,在 rsync 的客户端上安装了 inotify-tools 后指定需要监控的文件路径,在被监控路径下文件发生变化后就可以根据相关的信息用来触发 rsync 来做文件推送。在 Linux 下支持 inotify 的内核最小为 2.6.13,可以使用 uname - r 可以查看,现在 CentOS5 以上都是是支持的都是在 2.6.18 以上的所以一般来说内核都是支持的。安装也很简单,在配置好 epel 的源后可以通过 yum 进行安装:yum -y install inotify-tools,在安装好后会有 2 个二进制文件分别是 inotifywait 和 inotifywatch,其中用于监控文件变化的就是 inotifywait,而 inotifywait 所使用的参数选项也很简单:

- m 是要持续监视变化。
- r 使用递归形式监视目录。
- q 减少冗余信息,只打印出需要的信息。
- e 指定要监视的事件列表。
–timefmt 是指定时间的输出格式。
–format 指定文件变化的详细信息。

所以可以通过脚本挂在后台实时监控指定目录文件用来触发 rsync 做文件推送:
#!/bin/bash
#rsync_inotify.sh
port=873
src_dir=”/data/www/”
rsyncd_user=”username”
rsyncd_host=”192.168.2.1″
DEST_name=”backup”
password_file=”/etc/.rsync.passwd”
 
inotifywait -mrq –timefmt ‘%Y-%m-%d %H:%M:%S’ –format ‘%T %Xe %w%f’ -e modify,delete,create,attrib ${src_dir} | while read line
do
    file=$(echo $line | awk ‘{print $4}’)
    dir=$(dirname $file)
    if [-f $file];then
        rsync -vzrLtopg –progress –delete –port=${port} ${file} –password-file=${password_file} ${rsyncd_user}@${rsyncd_host}::${DEST_name}
    else
        cd $dir && rsync -vzrLtopg –progress –delete –port=${port} ./ –password-file=${password_file} ${rsyncd_user}@${rsyncd_host}::${DEST_name}
    fi
done

这样再把脚本后台启动后加入开机启动文件 /etc/rc.local 文件中,使得下次在服务器重启后还会生效:
/usr/local/scripts/rsync_inotify.sh &

CentOS 6.5 rsync+inotify 实现数据实时同步备份 http://www.linuxidc.com/Linux/2016-11/137655.htm

rsync+inotify 实现数据的实时同步 http://www.linuxidc.com/Linux/2017-01/139778.htm

rsync+inotify 实现服务器之间文件实时同步详解  http://www.linuxidc.com/Linux/2016-11/137659.htm

Rsync 结合 Inotify 实时同步配置  http://www.linuxidc.com/Linux/2017-02/140877.htm

RSync 实现数据备份  http://www.linuxidc.com/Linux/2017-06/144913.htm

rsync+inotify 实现数据的实时备份  http://www.linuxidc.com/Linux/2016-11/137630.htm

rsync+inotify 实现数据自动同步  http://www.linuxidc.com/Linux/2017-03/141717.htm

使用 rsync 实现数据实时同步备份  http://www.linuxidc.com/Linux/2017-05/143462.htm

Rsync 的详细介绍 :请点这里
Rsync 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-09/146674.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2061字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中