当同步的目录数据量不大时,建议使用rsync+inotify
当同步的目录数据量很大时(几百G甚至1T以上)文件很多时,建议使用rsync+sersync
1. 首先安装和配置好rsync
2. 安装sersync
wget 下载
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5_32bit_binary_stable_final.tar.gz #32位
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz #64位
3. 解压缩到 /usr/local/sersync/ 下
tar -zxvf sersync2.5_32bit_binary_stable_final.tar.gz /usr/local/sersync/
4. 备份并配置conf
cp /usr/local/sersync/confxml.xml /usr/local/sersync/confxml.xml.$(date +%F)
vim /usr/local/sersync/confxml.xml
修改24--28
24 <localpathwatch="/opt/tongbu"> # 定义本地要同步的目录,也就是监控的目录
25 <remote ip="127.0.0.1"name="tongbu1"/> #需要同步到的主机IP和rsync模块
26 <!--<remoteip="192.168.8.39" name="tongbu"/>--> # 多模块设置
27 <!--<remoteip="192.168.8.40" name="tongbu"/>--> # 多模块设置
28 </localpath>
修改31--34行,认证部分【rsync密码认证】
30 <commonParams params="-azp"/> #rsync 参数
31 <auth start="false" users="root" passwordfile="/etc/rsync.pas "/>
# 设置为true开启,账户为登录rsync的虚拟账户,密码为本地保存的rsync密码文件
32 <userDefinedPort start="false" port="874"/><!-- port=874 --> #自定义端口,可忽略
33 <timeout start="false" time="100"/><!-- timeout=100 --> #自定义超时,可忽略
34 <ssh start="false"/> #自定义ssh传输,可忽略
修改37行
<failLogpath="/tmp/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60mins execute once-->
#定义同步失败后重新同步的时间和错误日志 可忽略
5. 开启sersync守护进程同步数据
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml
整个sersync设置完毕!最后可以写脚本并添加chkconfig或者直接加命令到rc.local完成自启动。