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

 

PS1、同步测试

#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/