服务端
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 | 加上该选项,将会在传输过程中压缩。 |