多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 1.环境准备 ~~~ CentOS 7 Rsync服务端:192.168.109.10 CentOS 7 Rsync客户端:192.168.109.20 ~~~ ## 2.同步方式 ### 2.1 rsync通过ssh方式同步 Rsync服务端和客户端都需要安装rsync,需知道ssh端口和账号密码。 ~~~ yum -y install rsync ~~~ * 推文件: ~~~ rsync -av /etc/passwd 192.168.109.20:/tmp/passwd.txt ~~~ * 拉文件: ~~~ rsync -av 192.168.109.20:/tmp/passwd.txt /tmp/test.txt ~~~ * 指定ssh端口 ~~~ rsync -av -e "ssh -p 22" 192.168.109.20:/tmp/passwd.txt /tmp/a.txt ~~~ ### 2.2 rsync通过服务的方式同步 **服务端配置** 编辑配置文件/etc/rsyncd.conf ~~~ motd file = /etc/rsyncd.motd transfer logging = yes log file = /var/log/rsyncd.log //指定日志 port = 873 // 指定端口,默认是873 address = 192.168.109.10 //可以绑定IP uid = root // 用哪个用户来传输 gid = root //用哪个组来传输 use chroot = no //是否限定在该目录下,默认为true,当有软连接时,需要改为fasle,如果为true就限定为模块默认目录 read only = no //是否为只读,如果是no的话,客服端推送给服务端的时候不成功,这时候要改成yes max connections = 10 //指定最大可以连接的客户端数 [test] comment = rsync info path = /test //指定该模块对应在哪个目录下 ignore errors auth users = admin //指定验证用户名,可以不设置,不设置默认不用密码,设置的话安全性更高点 secrets file = /etc/rsyncd.secrets //指定密码文件,如果设定验证用户,这一项必须设置,设定密码权限为400. hosts allow = 192.168.109.0/255.255.255.0 //设置可以允许访问的主机,可以是网段,多个Ip地址用空格隔开 hosts deny = * list = false ~~~ 创建用户密码文件 ~~~ echo "admin:123456" > /etc/rsyncd.secrets chmod 600 /etc/rsyncd.secrets ~~~ 创建提示信息文件 ~~~ echo "rsync info" > /etc/rsyncd.motd ~~~ 启动服务 ~~~ rsync --daemon echo "rsync --daemon" >> /etc/rc.local ~~~ **客户端配置** 创建密码文件(免密码输入) ~~~ echo "123456" > /root/passwd chmod 600 /root/passwd ~~~ 客户端拉取服务端文件 ~~~ rsync -avz --password-file=/root/passwd admin@192.168.109.10::common /test ~~~ 客户端向服务端推送 ~~~ rsync -avz --password-file=/root/passwd /test/ admin@192.168.109.20::test ~~~ 注: `--delete`参数 删除与源文件不一致的文件 ~~~ rsync -avz --delete --password-file=/root/passwd /test/ admin@192.168.109.20::test ~~~