使用rsync同步

更新线上应用的时候,如果手动部署容易出错和遗漏,这里使用Linux自带的rsync功能,当应用在测试机测试ok,自动同步到正式机。这里我们把测试机称为Master,正式机称为Slave,应用从测试机同步到正式机,从Master同步到Slave。以下操作均在root账号下进行。

 

Master端配置:

1.vi /etc/rsyncd.conf

2.输入以下内容:

port = 873
uid = root
gid = root
use chroot = yes
read only = yes
#limit access to private LANs
hosts allow = YOURS
max connections =10
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
timeout = 300

[testlink]
path = /tmp/rsyntest
list = yes
auth users = root
uid = root
gid = root
exclude = *.xml *.properties *.log
secrets file = /etc/rsyncd.pass
read only = no

3.如果要排除某些文件可以在module节点下增加exclude = *.xml *.properties *.log 以空格分隔

4.mkdir -p /tmp/rsyntest

5.echo "this is test" > /tmp/rsyntest/test.test

6.echo "root:123456" > /etc/rsyncd.pass,这里root可以是其他Master的用户,但是必须是系统用户。

7.chmod 600 /etc/rsyncd.pass

8.启动rsync命令: rsync --daemon --config=/etc/rsyncd.conf;

   停止rsync命令:cat /var/run/rsyncd.pid | xargs kill -9 && rm -rf /var/run/rsyncd.pid。

   使用启动命令,启动Master的rsync服务。

9.记得在Master上对Slave机器开启iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -s SlaveIPS -j ACCEPT

 

Slave端配置测试

1.echo "123456" > /etc/rsyncd.pass

2.chmod 600 /etc/rsyncd.pass

3.cd /tmp/rsyntest

4.注意Slave端的/etc/rsyncd.pass只有密码,没有用户名root!!! 否则 指定pass文件运行时,rsync -vrtup --delete --password-file=/etc/rsyncd.pass root@masterIP::testlink /tmp/rsyntest,会报以下错误:

@ERROR: auth failed on module testlink
rsync error: error starting client-server protocol (code 5) at main.c(1527) [receiver=3.0.6]

 在Master端的日志文件/var/log/rsyncd.log,有以下报错内容:

2012/04/09 15:07:48 [28566] name lookup failed for slaveIP: Name or service not known
2012/04/09 15:07:48 [28566] connect from UNKNOWN (slaveIP)
2012/04/09 15:07:48 [28566] auth failed on module testlink from unknown (slaveIP): password mismatch

 

5.如果Slave端的/etc/rsyncd.pass和Master端一样,则只能按照以下不指定pass文件的方式运行:

rsync -vrtup --delete  root@masterIP::testlink /tmp/rsyntest  提示输入密码,输入/etc/rsyncd.pass中配置的密码123456,会有以下输出:

receiving incremental file list
./
test.test

sent 80 bytes  received 183 bytes  75.14 bytes/sec
total size is 30  speedup is 0.11

 

 

6.同步完毕在Master和Slave的对应目录分别执行  ls -alR|grep "^[-d]"|wc,看看文件夹和文件数是否一致。

 

rsyncd.conf的配置说明和rsync命令详解:

http://hi.baidu.com/xc_hai/blog/item/0ee61e8e321017f2503d9288.html

你可能感兴趣的:(linux,同步,rsync)