这篇文章主要讲了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掉