RSYNC配置
原创
©著作权归作者所有:来自51CTO博客作者两个小黄鹂的原创作品,请联系作者获取转载授权,否则将追究法律责任
服务端
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
| 加上该选项,将会在传输过程中压缩。
|