远程数据同步 Rsync
Rsync 是一个数据同步工具,支持全量 / 增量备份,支持本地复制,或者远程与其他主机同步
https://rsync.samba.org
服务端
假定 远程服务器 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
随后创建 /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