要编辑配置文件/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样例

rsync传输文件指定端口 rsync使用端口_rsync传输文件指定端口

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 文件中——>在打开文件的文件时候,会看到所有文件都存在的,但被注释掉的,我们可以另起一行,粘贴进去

rsync传输文件指定端口 rsync使用端口_rsync传输文件指定端口_02

启动服务rsync --daemon

rsync传输文件指定端口 rsync使用端口_IP_03

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

rsync传输文件指定端口 rsync使用端口_IP_04

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

rsync传输文件指定端口 rsync使用端口_IP_05

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

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

rsync传输文件指定端口 rsync使用端口_rsync传输文件指定端口_06

在另一台虚拟机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

rsync传输文件指定端口 rsync使用端口_开发工具_07

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

rsync传输文件指定端口 rsync使用端口_运维_08

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

rsync传输文件指定端口 rsync使用端口_运维_09

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

rsync传输文件指定端口 rsync使用端口_开发工具_10

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

rsync传输文件指定端口 rsync使用端口_运维_11


这时会发现端口通了

若想退出,按ctrl+],然后在quit就退出了

rsync传输文件指定端口 rsync使用端口_开发工具_12

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

rsync传输文件指定端口 rsync使用端口_IP_13

这时在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)

rsync传输文件指定端口 rsync使用端口_运维_14

在hf虚拟机中,检查文件

rsync传输文件指定端口 rsync使用端口_开发工具_15

这时就表示实验成功了

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

rsync传输文件指定端口 rsync使用端口_数据库_16


rsyncd.conf配置文件详解

rsync传输文件指定端口 rsync使用端口_IP_17

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

rsync传输文件指定端口 rsync使用端口_rsync传输文件指定端口_18

查看模块名

rsync传输文件指定端口 rsync使用端口_IP_19

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

rsync传输文件指定端口 rsync使用端口_开发工具_20

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

rsync传输文件指定端口 rsync使用端口_开发工具_21

传输文件中包含软连接

rsync传输文件指定端口 rsync使用端口_开发工具_22

rsync传输文件指定端口 rsync使用端口_rsync传输文件指定端口_23

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

rsync传输文件指定端口 rsync使用端口_IP_24


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/

rsync传输文件指定端口 rsync使用端口_IP_25


rsync传输时设置密码

auth users=test 设置用户名为test

secrets file=/etc/rsyncd.passwd 并在/etc/rsyncd.passwd中设置密码文件

在/etc/rsyncd.passwd文件中编辑

格式为test:hanfeng,然后保存退出

rsync传输文件指定端口 rsync使用端口_运维_26


然后修改权限为600

chmod 600 /etc/rsyncd.passwd

rsync传输文件指定端口 rsync使用端口_数据库_27

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

rsync传输文件指定端口 rsync使用端口_数据库_28

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

rsync传输文件指定端口 rsync使用端口_运维_29

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

rsync传输文件指定端口 rsync使用端口_运维_30

  

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