rsync配置
环境说明:
masterrsync_server:192.168.124.101
slaversync_client: 192.168.124.102
同步需求:
将client中的/var/test的文件同步至master;
将master中的/var/ab的文件同步至slave;
一、master,slave均安装rsync服务:
#yum –y install rsync |
二、master端配置:
2.1添加rsyncd.conf:
vim /etc/rsyncd.conf ############################################# #/etc/rsyncd.conf motd file = /rsyncd.motd transfer logging = yes port = 873 address = 192.168.124.101 uid = root gid = root use chroot = no max connections = 200 timeout = 300 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsyc.lock [test] path = /var/test/ ignore errors read only = false list = false #exclude = phpmyadmin/ #hosts allow = 192.168.1.0/255.255.255.0 hosts allow =192.168.124.102 hosts deny = * auth users = rsync_backup secrets file = /etc/rsync.password [ab] path = /var/ab/ ignore errors read only = false list = false #exclude = phpmyadmin/ #hosts allow = 192.168.1.0/255.255.255.0 hosts allow =192.168.124.102 hosts deny = * auth users = rsync_backup secrets file = /etc/rsync.password |
2.2修改同步目录权限:
mkdir /var/test /var/ab chown -R root.root /var/test chown -R root.root /var/ab |
2.3添加同步账号并授权:
echo "rsync_backup:bbc0123!" >/etc/rsync.password cat /etc/rsync.password chmod 600 /etc/rsync.password |
2.4 rsync后台启动,并加入开机启动:
/usr/bin/rsync --daemon ps -ef | grep rsync | grep -v grep netstat -aplnt | grep 873
echo “/usr/bin/rsync --daemon” >>/etc/rc.local pkill rsync |
三、slave端配置:
3.1修改目录同步权限:
mkdir /var/test /var/ab chown -R root.root /var/test chown -R root.root /var/ab |
3.2添加同步账号并授权:
echo "bbc0123!" >/etc/rsync.password chmod 600 /etc/rsync.password |
3.3添加同步脚本及定时任务并将定时任务:
vi /var/tb.sh #!/bin/bash sleep 2s host=192.168.124.101 #rsync_server地址 src1=/var/test/ dst1=test src2=/var/ab/ dst2=ab user=rsync_backup Passfile=/etc/rsync.password function rsync(){ echo `date +"%F %T %:z"` 'rsync start begining' >> /var/monitor_tb.log #从客户端同步至服务端 /usr/bin/rsync -avz --delete --progress --password-file=$Passfile $src1 $user@$host::$dst1 >/dev/null 2>&1 #从服务端同步至客户端 /usr/bin/rsync -avz --delete --progress --password-file=$Passfile $user@$host::$src2 $src2 >/dev/null 2>&1 echo `date +"%F %T %:z"` 'rsync start end' >> /var/monitor_tb.log } function checkRsync(){ num=`ps -ef|grep '/usr/bin/rsync -avz --delete --progress --password-file'|grep -v grep|awk '{print $8}' |uniq |wc -l` #echo $num >> /var/monitor_tb.log if [[ $num -eq 0 ]]; then echo `date +"%F %T %:z"` "文件同步开始">> /var/monitor_tb.log rsync else echo `date +"%F %T %:z"` '文件同步正在进行,稍后开始同步' >> /var/monitor_tb.log exit 0; fi } checkRsync
|
编辑定时任务
crontab -l */1 * * * * /bin/bash /var/tb.sh |
PS:1、同步测试
#将client中的/var/test的文件同步至master;(均在clien执行) #/usr/bin/rsync -avz --delete --progress --password-file=/etc/rsync.password /var/test/ rsync_backup@192.168.124.101::test #将master中的/var/ab的文件同步至slave;(均在clien执行) #/usr/bin/rsync -avz --delete --progress --password-file=/etc/rsync.password rsync_backup@192.168.124.101::ab /var/ab/ |
转载于:https://blog.51cto.com/4494258/1969077