首页/系统/Linux 运维命令速查/场景:网站目录增量备份到备份机
文件与目录76 条

场景:网站目录增量备份到备份机

用 rsync 把站点目录同步到备份服务器:排除日志缓存、限速保护带宽,--link-dest 做多版本硬链接快照。

Linux 运维命令速查系统更新于 2026-10-13

场景与思路

站点备份的常见形态是「主站目录 → 备份机」的增量同步:rsync 只传差异部分,--delete 让备份与源严格一致,--link-dest 用硬链接把每天的快照串起来,未变文件在快照之间共享数据块,所以保留多天版本只多占每天真正变化的空间。成败往往不在 rsync 参数,而在排除列表:日志、缓存、会话文件和临时目录必须排除,否则备份体积和耗时会被业务垃圾拖垮,恢复时也分不清哪些是必要数据。

基本信息

场景站点代码与上传目录(如 /www/wwwroot/site)定期增量备份到独立备份机
核心命令rsync -az --delete --exclude=... --bwlimit=... --link-dest=... 源/ 目标/
传输通道默认走 ssh(需免密密钥);也可用 rsync daemon(873/tcp)由 rsyncd.conf 控制
权限要点目标端账号要对备份目录有写权限;保留属主需 --rsync-path=sudo rsync 或目标端 root
版本策略--link-dest 指向上一份快照做硬链接增量,或用 cp -al 手工生成快照目录

典型使用场景

  • 每日全量镜像:夜间把站点目录同步到备份机的当日目录,保持一份与线上一致的副本
  • 多版本保留:用硬链接快照留下最近 7 天,误删文件可从任意一天取回
  • 换机迁移:新服务器从中转备份机 rsync 拉取数据,比从线上直接拉更安全
  • 限速备份:备份机与业务共用链路时用 --bwlimit 保护带宽
  • 发布前留档:改版前先同步一份快照,出问题可回取旧版本文件

基础增量同步

基础增量同步
rsync -az --delete \
  --exclude='logs/' --exclude='cache/' --exclude='runtime/' \
  --bwlimit=8000 \
  /data/site/ backup@10.0.0.9:/srv/backup/site/
# 先空跑确认删除清单,再实跑
rsync -avn --delete /data/site/ backup@10.0.0.9:/srv/backup/site/ | tail

硬链接快照保留多天版本

硬链接快照保留多天版本
# 备份机侧:从昨天快照硬链接出今天目录,再同步
cp -al /srv/backup/site-2026-10-11 /srv/backup/site-2026-10-12
rsync -a --delete --link-dest=/srv/backup/site-2026-10-11 \
  /data/site/ /srv/backup/site-2026-10-12/
du -sh /srv/backup/site-2026-10-12    # 只占当日变化量

关键选项取舍

选项作用什么时候加
-a归档:递归并保留权限、属主、时间、软链备份基本必备,替代 -rlptgoD 一长串
-z传输压缩跨网络加;同机或内网千兆以上传大文件常白耗 CPU
--delete删除目标端多余文件,使两边严格一致需要镜像时加,务必先 -n 空跑看删除清单
--bwlimit限制带宽,单位 KiB/s备份机与业务共线时保护在线业务
--link-dest未变文件硬链接到指定快照,只复制变化部分需要多版本且省空间的场景,路径必须绝对且同文件系统
--partial保留半截文件以便续传大文件跨公网或链路不稳时减少重复传输
--delete 是备份脚本里最危险的一项:源目录被误清空或挂载点丢失时,备份会同步清空。上线前必须用 -n 空跑核对删除清单,并保留 --link-dest 历史快照作为退路。
备份账号建议用独立用户的 ssh 密钥并在 authorized_keys 里用 command= 限定只能执行 rsync,比共享 root 密钥安全得多。

易错点

  • 源路径结尾的斜杠决定语义:/data/site/ 同步目录内容,/data/site 会在目标下再建一层 site 子目录
  • 备份目录留在站点根下(如 /www/wwwroot/site/backup)会被同步进备份,形成递归膨胀
  • --link-dest 要求目标快照与本次写入同文件系统,跨文件系统会静默退化为完整复制,看不出报错但空间翻倍
  • --bwlimit 单位是 KiB/s,写 8000 约等于 8MB/s;照搬成 8 会把备份拖到几小时
  • 云盘或 RAID 快照不能替代逻辑备份,误删文件时快照会一起删掉,两者要分别保留

数据来源与参考

  • man 1 rsync(rsync 官方手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌