这篇文章主要讲了rsync + inotify 配置方式,至于如何安装这两个工具,网上教程一大堆,这里不再逐一叙述。
功能:服务器修改同步到客户端
服务器端配置:
服务器IP:10.11.28.4
/home/www/rsync.sh
#!/bin/bash
src=/home/www/apache-tomcat-7.0.64/webapps/redpacket/ #同步的文件夹
des=www #标志 和客户端的对应
host="10.11.28.5" #客户端IP地址
/home/www/inotify-tools-3.14/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib $src | while read files
do
for hostip in $host
do
rsync -vzrtopg --delete --progress --password-file=/etc/rsync.passwd $src cib@$hostip::$des
done
echo "${files} was rsynced" >>/home/www/slave_sync/rsync.log 2>&1 # 服务器端日志地址
done
/etc/rsync.passwd
bonus #密码
客户端配置:
客户端IP:10.11.28.5
/etc/rsyncd.conf
list=yes
uid=root #所同步文件夹属于的用户和组 必须保持一致
gid=root #所同步文件夹属于的用户和组
hosts allow=10.11.28.4
max connections=30
log file=/var/log/rsyncd.log #客户端日志地址
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
[www]
comment=from 10.11.28.5
path=/home/www/apache-tomcat-7.0.64/webapps/redpacket/
auth users=cib #用户名,必须为系统用户,且和rsync.passwd中对应
read only = false
secrets file=/etc/rsync.passwd
/etc/rsync.passwd
cib:bonus # 用户名和密码
服务器端启动rsync.sh
nohup /bin/bash /home/cib/rsync.sh &
服务器端终止rsync.sh
ps -ef |grep rsync.sh |awk '{print $2}'|xargs kill -9
客户端启动rsync
rsync --daemon
客户端终止rsync
ps –ef | grep rsync
找到rsync的pid, 然后kill掉