共计 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