rsync通过服务同步
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync通过服务同步相关的知识,希望对你有一定的参考价值。
对rsyncd.conf文件内容详解:
port=873 //监听端口默认为873,可以自定义端口
log file=/var/log/rsync.log //指定日志路径
pid file=/var/run/rsyncd.pid //指定pid路径
address=192.168.202.130 //可以自定义绑定的ip
[test] //test为模块名,可以自定义
path=/root/rsync // 指定该模块对应路径
use chroot=true //是否限定在该目录下,默认为true,当有软连接时,需要改为fasle,如果为true就限定为模块默认目录
max connections=4 //指定最大客户端个数
read only=no //是否为只读,如果是no的话,客服端推送给服务端的时候不成功,这时候要改成yes
list=true //是否可以列出模块名
uid=root //以哪个用户的身份来传输
gid=root //以哪个组的身份来传输
auth users=test //指定验证用户名,可以不设置,不设置默认不用密码,设置的话安全性更高点
secrets file=/etc/rsyncd.passwd //指定密码文件,如果设定验证用户,这一项必须设置,设定密码权限为600
hosts allow=192.168.1.151 //这个是定义哪个机器可以连接本机
hosts allow=192.168.1.151 192.168.2.1 2.2.2.2 192.168.19.0/24 //多个ip使用空格隔开,也可以写IP段
演示:
#vi /etc/rsyncd.conf //编辑配置文件
把上图的rsyncd.conf样例粘贴到配置文件中
#rsync --daemon //启动服务
#ps aux |grep rsync 或者 #netstat -lntp 查看873端口有没有启动
#rsync -avP /tmp/1.txt 192.168.1.150::test/2.txt //test是rsyncd.conf配置文件中的[test]模块名字
遇到问题:执行不成功,排查
首先#ping 192.168.1.150是否能通,能通,则
#telnet 192.168.1.150 873 //结果telnet873端口不通,可能是防火墙的问题,
#iptables -nvL 查看规则,果然是防火墙问题
#systemctl stop firewalld //把A和B机器的firewalld都关闭掉
#telnet 192.168.1.150 873 //再次telnet测试就通了,按Ctrl+],再quit就可以退出telnet了
#rsync -avP /tmp/1.txt 192.168.1.150::test/2.txt //执行rsync命令
对rsyncd.conf文件详解:
需要特别注意rsyncd.conf配置文件中的use chroot true|false的含义
#rsync -avP --port 8730 192.168.1.150::test/2.txt /tmp/1.txt //--port 8730指定端口号,8730为在rsyncd.conf文件中自定义的端口号
#rsync --port 8730 192.168.1.150:: //这样就可以查看到该服务器上的可用模块
list=false //为了安全起见,list建议修改为false,这样别人就列不出你的模块名
设置用户名密码:
#vim /etc/rsyncd.passwd //首先在rsync服务端A机器上编辑#vim /etc/rsyncd.passwd文件,在里面输入账号密码 test:123456 ,格式为 用户名:密码
#chmod 600 /etc/rsyncd.passwd //修改它的权限为600
再在客户端B机器上进行测试是否需要密码:
#rsync -avP /tmp/1.txt --port 8730 [email protected]::test/2.txt //执行这个命令需要加用户名,然后输入在服务端A机器上设置的密码,即可进行同步备份
需求:
需要使用rsync在每天凌晨备份数据库,但是上面我们使用的是需要手动输入密码才能进行同步的,这样,我们可以在客户端B机器上也设定一个密码文件
#vim /etc/rsync_pass.txt
在这个配置文件中只输入一个服务端A机器上设置的密码就可以,即输入 123456
#chmod 600 /etc/rsync_pass.txt //修改它的权限为600
#rsync -avP /tmp/1.txt --port 8730 --passwd-file=etc/rsync_pass.txt [email protected]::test/2.txt //这样就可以不输入密码进行同步备份了(注意,这两行是一条完整的命令)
以上是关于rsync通过服务同步的主要内容,如果未能解决你的问题,请参考以下文章