服务器之间代码同步 rsync

一、前期准备

服务器端:192.168.0.1
客户端(需要同步代码的机器):192.168.0.2

二、安装rsync

192.168.0.1和192.168.0.2机器都装上rsync
yum install rsync

注意服务器端192.168.0.1需要开放端口873,因为rsync默认监听873

三、服务器端配置

192.168.0.1服务器端配置rsyncd.conf文件,yum安装则是vim /etc/rsyncd.conf
编辑输入以下内容,关键地方已标红:

uid = root
gid = root
use chroot = no
max connections = 4

exclude = lost+found/ .svn/
#传输时候,不传这些目录

transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = .gz .tgz .zip .z .Z .rpm .deb .bz2

[test_php_deploy]
#自定义的标签名字,后续在客户端会用上

path=/root/.jenkins/workspace/test_php_deploy/
#客户端需要从服务器端同步的文件目录,存在于服务器端上

comment=test_php_deploy
自定义的标签名字,后续在客户端会用上

ignore errors
read only=yes
write only=no
list=no

auth user=root
#一个存在于服务器端的用户,如有多个逗号隔开,并且要求具有对需同步目录下的文件的读和执行权限。

secrets file=/etc/rsyncd.passwd
#存放用户名和密码的地方

hosts allow = 192.168.0.2
#代表允许所有的地址,安全起见,最好是客户端的地址。

四、配置服务器端的密码

vim /etc/rsyncd.passwd,无则服务器端新建,输入以下内容:
root:test2018

在服务器端新建后,改变权限
chmod 600 /etc/rsyncd.passwd

在服务器端,以daemon模式运行
rsync --daemon

五、在客户端执行
rsync -vzrtopg [email protected]::test_php_deploy /home/www/test/ --password-file=/etc/rsyncd.passwd --delete

命令解释:
root为服务器端的rsyncd.conf文件的auth user授权用户
192.168.0.1为服务器端ip
test_php_deploy为服务器端的rsyncd.conf文件的test_php_deploy模块
/home/www/test/为从服务器端同步文件到本地的指定目录
–password-file=/etc/rsyncd.passwd为用服务器端的密码文件
–delete为删除本地多余的目录文件,也就是与服务器端的目录文件匹配后不一样的多余文件

你可能感兴趣的:(服务器)