服务器端配置: 1.配置rsync配置文件 #vim /etc/rsyncd.conf pid file = /var/run/rsyncd.pidport = 873address = 0.0.0.
服务器端配置:
1.配置rsync配置文件
#vim /etc/rsyncd.conf
pid file = /var/run/rsyncd.pidport = 873address = 0.0.0.0uid =rootgid = rootuse chroot = yesread only = yeshosts allow = 10.11.4.66max connections = 4timeout = 300[maven] path = /data/maven_workDir list = no ignore errors secrets file = /etc/rsyncd.secrets
2.配置客户端同步使用的账号密码
#vim /etc/rsyncd.secrets
maven:centrald
3.设置账号密码文件权限为600
#chmod 600 /etc/rsyncd.secrets
4.启动rsync服务
# /usr/bin/rsync --daemon --config=/etc/rsyncd.conf
客户端配置
1.同步脚本
vim maven_backup.sh
#!/bin/bashhost=10.17.32.167backing_flag_file="/tmp/maven_backup_flag"startTime=`date`echo "====================开始同步,当前时间为${startTime}===================="# 同步过程中会创建一个标记文件,标记正在同步,同步结束后删除文件,如果该文件存在,说明当前正在rsync中if [ -f $backing_flag_file ];then echo "上次同步未结束,不开始本次同步" exit 1else # 创建标记文件 touch $backing_flag_file if [ $? -eq 0 ];then rsync -avW mapp@${host}::maven/ /data/maven_workDir --delete --password-file=/etc/rsync.pass else echo "创建标记文件失败" fi # 同步结束,删除标记文件 rm -f $backing_flag_filefiendTime=`date`echo "====================结束同步,当前时间为${endTime}===================="
2.配置同步客户端密码(这样可以使用crontable进行自动同步)
# vim /etc/rsync.pass
centrald
3.contable中设置定时同步
#crontable -e
*/10 * * * * /bin/bash /root/maven_backup.sh &>> /tmp/maven_backup.log
服务端推送到客户端同步方式:
会出现这种情况,A 机器需要同步数据到 B机器,但是网络有做隔离,B不能去A 机器拉取数据,所以只能采取A推送数据的方式。就相当于rsync服务器端推送数据到客户端。那么同步脚本如下:
#!/bin/bashhost=10.50.16.21backing_flag_file="/tmp/maven_backup_flag2"startTime=`date`echo "====================开始同步,当前时间为${startTime}===================="# 同步过程中会创建一个标记文件,标记正在同步,同步结束后删除文件,如果该文件存在,说明当前正在rsync中if [ -f $backing_flag_file ];then echo "上次同步未结束,不开始本次同步" exit 1else # 创建标记文件 touch $backing_flag_file if [ $? -eq 0 ];then rsync -avW /data/maven_workDir root@${host}::maven/ --delete --password-file=/etc/rsync.pass else echo "创建标记文件失败" fi # 同步结束,删除标记文件 rm -f $backing_flag_filefiendTime=`date`echo "====================结束同步,当前时间为${endTime}===================="