rsync 增量备份实战:把重要目录稳稳同步到另一台机器
服务器上最怕的不是磁盘坏,而是坏的时候没有可用备份。rsync 做增量同步很合适:第一次全量拷,之后只传变化部分,带宽和耗时都省。下面按「本机目录 → 远端目录」的常见场景走一遍,并补上排错清单。
安装与基本形态
多数发行版自带 rsync。没有的话:
Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y rsync
RHEL/CentOS/Rocky
sudo yum install -y rsync
最常用的远端推送写法:
rsync -avz --progress /data/app/ user@backup-host:/backup/app/
含义简记:
・-a:归档模式(递归、保留权限/时间戳/软链等)
・-v:输出过程
・-z:传输时压缩
・–progress:看每个文件进度
源路径末尾有没有 / 差很多:/data/app/ 表示同步目录内容;/data/app 会在目标下再造一层 app。写脚本前先用 --dry-run(或 -n)预演一次。
推荐加上的安全选项
生产同步建议显式写清这些:
rsync -avz --delete --partial --timeout=120
–exclude=‘*.tmp’ --exclude=‘cache/’
-e “ssh -p 22 -o StrictHostKeyChecking=accept-new”
/data/app/ user@backup-host:/backup/app/
・–delete:源已删除的文件,目标也删(镜像同步才开;误开会删目标多出来的文件)
・–partial:大文件中断后可续传残片
・–timeout:避免 SSH 假死后一直挂着
・–exclude:跳过缓存、临时文件,减少噪声
密钥登录请提前配好,定时任务里不要塞密码。
用 systemd timer 做每日备份
比起 crontab,timer 更容易看日志。示例服务与定时器:
/etc/systemd/system/rsync-app-backup.service:
[Unit]
Description=rsync backup for /data/app
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/rsync -avz --delete --partial
–exclude=‘*.tmp’ --exclude=‘cache/’
-e “ssh -i /root/.ssh/backup_ed25519”
/data/app/ backup@backup-host:/backup/app/
/etc/systemd/system/rsync-app-backup.timer:
[Unit]
Description=Daily rsync backup at 02:30
[Timer]
OnCalendar=--* 02:30:00
Persistent=true
[Install]
WantedBy=timers.target
启用:
sudo systemctl daemon-reload
sudo systemctl enable --now rsync-app-backup.timer
systemctl list-timers | grep rsync
journalctl -u rsync-app-backup.service -n 50
常见故障怎么查
-
Permission denied:远端用户对目标目录没写权限,或 SSH 密钥不对。先 ssh user@host 手动登录,再 touch /backup/app/.write-test。
-
协议版本 / 命令找不到:远端没装 rsync,或 PATH 不同。在远端直接执行 which rsync。
-
同步完目标多了一层目录:多半是源路径末尾 / 写错,用 -n 预演核对树形。
-
–delete 误删:先去掉 --delete 跑通,确认双方目录角色后再开;重要目标可先加 --backup --backup-dir=/backup/trash/$(date +%F)。
-
特别慢:大目录第一次全量正常;之后若仍很慢,检查是否每次都在传不变的大文件(权限/时间戳被改),可加 --checksum 对比排查,但日常别默认开(更吃 CPU)。
小结
rsync 适合「目录级、可重复、可增量」的备份与发布同步。先 -n 预演,密钥登录跑通,再用 timer 固定节奏;–delete 与 exclude 规则想清楚再上生产。把上面服务落到两台机器上,比临时手敲一条命令可靠得多。
- 点赞
- 收藏
- 关注作者
评论(0)