RSYNC简介
我们常常需要把文件从一台机器复制到另外一台机器,然后执行一些操作。如果这样的工作只需要做一次,对于会使用Linux的用户来说并不困难。但是如果这样的事情需要进行很多次,那么你可能会想有没有更好的办法。其实我们的前辈工程师们早已开发出了一套程序,帮我们实现这样的目的。RSYNC便是用来数据同步的程序代表。
想象一下数据复制的过程,你可能对以下要点感兴趣:
1. 如何将数据从源机器发送到目标机器?
通过rsync命令(rsync命令的格式本文不做赘述)。
2. 目标机器上,谁完成了数据接收处理?
目标机器上正在运行的rsync服务端程序。
3. 目标机器会把接收到的数据放在什么位置?
目标机器上运行的rsync程序会根据启动时指定的配置文件里面的配置,对数据进行处理。
带着这三个疑问,我们即将完成RSYNC环境的搭建。
安装RSYNC
执行数据传输的源机器,以及目标机器均需要安装rsync程序,其中目标机器还需要启动rsync服务器程序,以等待接收数据,响应数据传输请求。
安装rsync的命令是:
yum installrsync
配置RSYNC
RSYNC程序不但可以配置数据保存路径,数据传输的用户,而且支持配置多个数据保存路径以及多个用户。使用RSYNC执行传输时,需要指定目标机器上的用户,以及传输模式(当然可能也需要输入密码)。模式一词决定了哪些用户可以使用这个模式传输数据,以及数据存放路径(get到这两点即可,没有必要细究)。
#/etc/rsyncd: configuration file for rsync daemon mode
#See rsyncd.conf man page for more options.
#configuration example:
#uid = nobody
#gid = nobody
#use chroot = yes
#max connections = 4
#pid file = /var/run/rsyncd.pid
#exclude = lost+found/
#transfer logging = yes
#timeout = 900
#ignore nonreadable = yes
#dont compress = *.gz *.tgz *.zip *.z*.Z *.rpm *.deb *.bz2
#
pidfile=/var/run/rsyncd.pid
port=873
motdfile=/usr/local/rsync/rsyncd.motd
logfile=/usr/local/rsync/rsyncd.log
[deploy_programs] 配置文件里section的名字即是模式名字
path=/home/qogir_service /release_instance/bin/ 这是模式的数据存储路径
usechroot=true
uid=0
gid=0
readonly=false
exclude=/readme.txt/runtime
authusers= qogir_service这里指定了哪些用户可以使用这个模式
secretsfile = /usr/local/rsync/rsyncd.secrets 这是模式的用户名、密码
发送数据命令
/usr/bin/rsync --port=873 -av ./progs/ qogir_service@192.168.8.8::deploy_programs
这条命令成功执行后,./progs/下面的数据将同步到192.168.8.8机器下,用户qogir_service的
/home/ qogir_service/release_instance/bin/路径下。其中,这条命令里,qogir_service指定了接收数据的用户,deploy_programs指定了数据传输的模式.
参考资料
1. https://blog.csdn.net/tangxinzhuan/article/details/78790153