rsync over SSH 是成熟、安全、高效的 Linux 远程备份方案,依赖 SSH 加密传输,支持增量同步、断点续传与权限保留,需两端安装 rsync 并配置 SSH 免密登录,配合 -avz --delete 等选项实现精准备份。

Linux 远程备份用 rsync over SSH 是成熟、安全又高效的方案。它不依赖额外服务(如 rsyncd),只要远程主机开放 SSH,就能加密传输、只同步变更部分、支持断点续传,还能精准控制文件增删和权限保留。
确保两端都装了 rsync
rsync 必须在本地和远程服务器上都存在。多数发行版默认已安装,未安装时执行:
- Debian/Ubuntu:sudo apt install rsync
- RHEL/CentOS/Fedora:sudo yum install -y rsync 或 sudo dnf install -y rsync
验证命令:rsync --version。无需启动守护进程,SSH 就是它的传输通道。
配置 SSH 免密登录(推荐)
自动化备份离不开免密码连接。生成密钥对并部署公钥到远程主机即可:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 本地运行:ssh-keygen -t ed25519 -C "backup@$(hostname)"(比 rsa 更快更安全)
- 复制公钥:ssh-copy-id user@remote_host(自动处理 ~/.ssh/authorized_keys 权限)
- 测试:ssh user@remote_host 应直接进入,无密码提示
若远程禁用密码登录(强烈建议),请确认 /etc/ssh/sshd_config 中 PubkeyAuthentication yes 已启用,并重启 sshd。
编写安全可靠的备份命令
核心是用 -e ssh 显式指定通道,并搭配关键选项保证一致性与可读性:
-
基础推送备份:
rsync -avz --delete -e "ssh -o StrictHostKeyChecking=no" /data/ user@remote_host:/backup/data/ - --delete 确保远程目录严格等于本地,避免残留旧文件
- -a 保留权限、时间戳、软链接等;-v 输出详情;-z 压缩传输
- StrictHostKeyChecking=no 可跳过首次连接确认(适合脚本),生产环境建议配合 known_hosts 预置
- 注意路径末尾斜杠:
/data/同步内容,/data同步整个目录名
封装为定时备份脚本
把命令写进 shell 脚本,再交给 cron 定期执行,实现无人值守:
- 新建 backup.sh,开头加
#!/bin/bash,加入 rsync 命令和日志记录(如>& /var/log/backup.log) - 赋予执行权限:chmod +x backup.sh
- 添加到 crontab:crontab -e,例如每天凌晨 2 点运行:
0 2 * * * /path/to/backup.sh - 建议加上 --dry-run 先试运行,确认输出无误后再去掉
若远程主机 SSH 端口非 22,可在 -e ssh 中指定:-e "ssh -p 2222"。

















