远程数据同步 Rsync
Rsync 是一个数据同步工具,支持全量 / 增量备份,支持本地复制,或者远程与其他主机同步
假定情景
远程服务器 IP 地址 192.168.1.2,用户 atri
服务端
配置
编辑 /etc/rsyncd.conf 文件,写入如下内容
#uid = nobody
#gid = nobody
#use chroot = no
#max connections = 4
#syslog facility = local5
#pid file = /run/rsyncd.pid
#port = 873
[backup]
path = /home/backup
comment = Backup - Rsync Server
read only = no
auth users = atri
secrets file = /home/.rsyncd.secret
各字段的含义如下
[backup]
此配置的模块名称path
数据存放的路径comment
描述信息read only
是否保持只读auth users
允许的用户,虚拟的,不需要存在于系统中secrets file
密码文件
随后创建 /home/.rsyncd.secret 文件,写入用户和对应的密码,示例如下
atri:password
输入 chmod 600 /home/.rsyncd.secret
将密码文件的权限设为 600
启动
输入如下命令,开启 rsync 守护进程,可使用 --config=
指定配置文件,默认加载 /etc/rsyncd.conf
rsync --daemon
如果使用 systemd 等后台服务工具,则需要加上 --no-detach 参数使得保持前台运行,如使用包管理器安装,应直接输入 systemctl enable --now rsyncd
即可
客户端
配置
创建 .rsync_pw 文件,写入密码,并将权限设为 600
password
同步数据
输入 rsync rsync://192.168.1.2
查看服务器中的模块,应得到如下信息
backup Backup - Rsync Server
左侧的 backup 即为在服务端配置中的模块名称
输入如下命令,传输数据。如果宽度较小,可以对其进行限速,例如添加参数 --bwlimit=50 即为限速到 50kb/s
rsync -avzhPu /data rsync://atri@192.168.1.2/backup --password-file=.rsync_pw
参数解释:
-a
保留元数据-v
显示详细信息-z
使用压缩-h
显示传输状态-P
允许中断传输-u
不同步修改日期比远程早的文件
常见问题
failed: Permission denied (13)
在服务端将 path 对应的路径权限设为 755