10、21 rsync通过服务同步

要编辑配置文件/etc/rsyncd.conf
启动服务rsync --daemon
格式:rsync -av test1/ 192.168.202.130::module/dir/
rsync同步文件
rsync 通过服务的方式同步,首先需要开启一个服务,是cs架构,客户端和服务端
服务端,开启一个rsync服务,并且一个端口,默认是873——>(端口是可以自定义的)
格式:rsync -av test1/ 192.168.133.130::module/dir/
在启动服务之前,首先要编辑配置文件,文件的默认地址是在 /etc/rsyncd.conf——>也可以更改路径,但是在更改路径后,就需要在启动服务的时候,去rsync --daemon//conf=后跟路径
然后启动服务rsync --daemon

从hf机器的文件传输到hf-02机器
rsyncd.conf样例

dc714077ca37dc6d925dbc6583fdd3d731b.jpg

port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.202.130
[test]
path=/root/rsync
use chroot=true
max connections=4
read only=no
list=true
uid=root
gid=root
auth users=test
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.133.132 1.1.1.1 2.2.2.2  192.168.133.0/24

首先在虚拟机hf上打开/etc/rsyncd.conf文件
vim /etc/rsyncd.conf
然后将上述代码复制到 /etc/rsyncd.conf 文件中——>在打开文件的文件时候,会看到所有文件都存在的,但被注释掉的,我们可以另起一行,粘贴进去

44041124efb5ed27bd4cb4d3493abbf2365.jpg

启动服务rsync --daemon

414838020c3f7052cdf72e1d8415b6e6bee.jpg

在hf虚拟机上检查服务是否已经启动

8e2cea44cdc7c89d795e804c81321a895a4.jpg

在hf虚拟机上检查监听的端口是否为873
会看到监听的端口为873
这里并且指定监听的IP,若是不写监听的IP,就会绑定0.0.0.0,就是所有的网段,全部的IP

8da877f5dbb0a478ad06f6263475a1be710.jpg

在hf虚拟机上检查path指定的路径
这里若是指定root,权限就会有可能不好把握,所以放在tmp目录下
修改/etc/rsyncd.conf目录中的
将path=/root/rsync改为path=/tmp/rsync
并新建目录mkdir=/tmp/rsync

在hf虚拟机上设置权限——>这里设置的777权限是为了方便测试

c428d8c54ff833e74b1977982d123df6330.jpg

在另一台虚拟机hf-02上,运行
rsync -avP /tmp/hanfeng.txt 192.168.202.130::test/hanfeng-02.txt
192.168.202.130它是hf虚拟机的IP
::后面跟模块的名称——>模块名称就是/etc/rsyncd.conf中设置的 test 模块
这里模块名称代表的路径就是/tmp/rsync

f51383fd6e98d2518601f0d898aa7a965dc.jpg

在hf-02虚拟机上,会提示没有路由到远程机器上去,遇到这种问题,首先在hf-02虚拟机上检查网络连通性

8f0cf8cfe050cd481142c0ab4045a88312f.jpg

这时在hf-02虚拟机上,检查是否为端口的问题
telnet 命令,用于登录远程主机,对远程主机进行管理。
安装telnet包——>yum install -y telnet
telnet 192.168.202.130 873 //检查端口是否相通的命令

13ba45a3ce9b49a0f560b564abe9990d261.jpg

这时候会发现873端口是不通的
首先检查是否为iptables的问题

7d7bd1436102b3155ffce376c78e116d2fd.jpg

会看到是iptables的问题,我们需要停掉firewalld 服务停掉(systemctl stop firewalld,如开启的是iptables防火墙,则要用service iptables stop关闭防火墙,且2台机器都要进行关闭防火墙)

113ed5c1da2d40ccf1e4e24fc284f2ccc8e.jpg
这时会发现端口通了
若想退出,按ctrl+],然后在quit就退出了

a2b0d03a58cb22946c814e71a4189a312f0.jpg

这时在hf-02虚拟机上,执行rsync -avP /tmp/hanfeng.txt 192.168.202.130::test/hanfeng-02.txt命令,会看到提示要输出密码——因为在/etc/rsyncd.conf文件中,有定义密码
这时可以在hf虚拟机中的/etc/rsyncd.conf文件中,注释掉输入密码

cee7c1f05874e250160de64959daf434165.jpg

这时在hf-02虚拟机上执行 rsync -avP /tmp/hanfeng.txt 192.168.202.130::test/hanfeng-02.txt
这时就不需要输入密码,就可以传输文件了(将02客户机上的/tmp/hanfeng.txt文件同步到了01服务器设置的path=/tmp/rsync下,并命名为hanfeng-02.txt)

58d37577d38bbe2dadd9236bfd50e4a4860.jpg

在hf虚拟机中,检查文件

463de4aa9ba4478dbc89080d689d5e9ff9c.jpg

这时就表示实验成功了

从hf-02机器的文件拉到hf机器(在02上接收01上的/tmp/rsync/test2.txt文件到/tmp/目录下并命名为123.txt)

b25d462b7013ad94bd82e962df93515ccdc.jpg
rsyncd.conf配置文件详解

618b65a873830ba9c60132ac658e056d08f.jpg

查看日志文件命令cat /var/log/rsync.log

56710846263c41f651d41c32f908871ba36.jpg

查看模块名

a06e78083d24dd6ee5da8a1f1067afbdfd7.jpg

若将 list 改为 false ,则模块名不会列出,会被隐藏

0172429d2edf3da73545e93c4519a39559b.jpg

use chroot true会影响到传输文件中软连接文件的传输

85f0ac287b92b743b226df480279cd99772.jpg

传输文件中包含软连接

b4c5319b40ea143feec84cc6fe9a2bb5d74.jpg

a7ef77fdce64ddcb110dd38a1bef580514e.jpg

添加P属性,下载软连接源文件时,由于use chroot true出现报错。
当use chroot 改为false时后,即可成功

ca3d0be01708de1aff148789a01f7404435.jpg
vim /etc/rsyncd.conf中若port=873被修改,使用killall rsync(killall:yum install -y psmisc)命令先关闭rsync相关进程再启动,rsync --daemon。接收文件时使用--port指定已修改的端口,rsync -avLP  --port 8730 192.168.179.128::test/ /tmp/test/

625c99d8292c4540f7b55c797ccaa6cb7ca.jpg
rsync传输时设置密码
auth users=test 设置用户名为test
secrets file=/etc/rsyncd.passwd 并在/etc/rsyncd.passwd中设置密码文件
在/etc/rsyncd.passwd文件中编辑
格式为test:hanfeng,然后保存退出

983e61b4cbb21e5e57523677023032da8ac.jpg
然后修改权限为600
chmod 600 /etc/rsyncd.passwd

fc4cb4ec84bef15fec38fd8ab2301a4b50f.jpg

rsync -avP /tmp/test/ test@192.168.202.130::test/
这时候就需要输入用户名了 test@

c75ecdde07f1fbbe5502b54ab4ac5c67895.jpg

在rsync传输文件的时候,在写shell脚本输入密码不好,比如每天凌晨半夜更新数据库文件啥的,那就会很麻烦
这时候在hf-02客户端也定义一个密码文件
vim /etc/rsync_pass.txt
格式:只写一个密码即可 hanfeng 并保存——>客户端上只需写一个密码就行
并修改权限为600
chmod 600 /etc/rsync_pass.txt

1c443d8a34e895e783ffe544998365631ed.jpg

rsync -avP /tmp/test/ --password-file=/etc/rsync_pass.txt test@192.168.202.130::test/
这里需要加上--password-file=/etc/rsync_pass.txt

a90f48bcf37ae6bf691c531c377abf88910.jpg

  

hosts allow
hosts allow,用来定义你允许那些机器去做同步,允许哪一个IP连接,若是多个IP,就用空格隔开,也可以写IP段192.168.133.0/24
 

转载于:https://my.oschina.net/u/3867322/blog/1859332

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值