服务端

1. 修改配置文件

测试时,修改配置文件中path参数,无需重启服务可以直接生效

vim /etc/rsyncd.conf
uid = root #设置运行rsync 进程的用户
gid = root
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

[backup] #此名字即客户端使用rsync来同步的路径,只是模块名称,无需和文件夹名字相同
comment=backup #和中括号里名字一样就行,备注启动进程可以显示的内容
path=/backup/ #实际需要同步的路径
ignore errors
read only=yes #表示可以pull
write only=no #表示可以push
hosts allow = * #允许所有主机连接
auth users = synctest #客户端获取文件的身份此用户并不是本机中确实存在的用户
secrets file = /etc/rsyncd.passwd #用来认证客户端的秘钥文件 格式 USERNAME:PASSWD 此文件权
#限一定需要改为600,且属主必须与运行rsync的用户一致

2. 密码文件

synctest为

echo 'synctest:123456' > /etc/rsyncd.passwd  文件用户名与配置文件对应
chmod 600 /etc/rsyncd.passwd

3. 启动rsync服务

方式一:
systemctl start rsyncd
systemctl status rsyncd
方式二:
rsync --daemon #默认使用/etc/rsyncd.conf
rsync --daemon --config=/etc/rsyncd.conf
ss -lntup |grep rsync
tcp LISTEN 0 5 *:873 *:* users:(("rsync",pid=122637,fd=4))
tcp LISTEN 0 5 [::]:873 [::]:* users:(("rsync",pid=122637,fd=5))

客户端

1. 创建密码文件

echo '123456' >>/etc/rsyncd.passwd   #注意这里只需要服务器rsyncd.passwd中的密码
chmod 600 /etc/rsyncd.passwd

2. 测试文件传输

客户端执行,同步客户端/backup/20230206目录到服务端/backup目录

/usr/bin/rsync -avztopg --password-file=/etc/rsyncd.passwd --port 873 --bwlimit=5120 --compress /backup/20230206 cpcn@192.168.62.24::backup

客户端执行,同步服务端/backup目录到客户端/tmp目录

/usr/bin/rsync -avztopg --password-file=/etc/rsyncd.passwd --port 873 --bwlimit=5120 --compress cpcn@192.168.62.24::backup /tmp

3. 其他参数

OPTION选项

功能

-a

这是归档模式,表示以递归方式传输文件,并保持所有属性,它等同于-r、-l、-p、-t、-g、-o、-D 选项。-a 选项后面可以跟一个 --no-OPTION,表示关闭 -r、-l、-p、-t、-g、-o、-D 中的某一个,比如-a --no-l 等同于 -r、-p、-t、-g、-o、-D 选项。

-r

表示以递归模式处理子目录,它主要是针对目录来说的,如果单独传一个文件不需要加 -r 选项,但是传输目录时必须加。

-v

表示打印一些信息,比如文件列表、文件数量等。

-l

表示保留软连接。

-L

表示像对待常规文件一样处理软连接。如果是 SRC 中有软连接文件,则加上该选项后,将会把软连接指向的目标文件复制到 DEST。

-p

表示保持文件权限。

-o

表示保持文件属主信息。

-g

表示保持文件属组信息。

-D

表示保持设备文件信息。

-t

表示保持文件时间信息。

–delete

表示删除 DEST 中 SRC 没有的文件。

–exclude=PATTERN

表示指定排除不需要传输的文件,等号后面跟文件名,可以是通配符模式(如 *.txt)。

–progress

表示在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、 同步的文件传输速度等。

-u

表示把 DEST 中比 SRC 还新的文件排除掉,不会覆盖。

-z

加上该选项,将会在传输过程中压缩。