«

Linux rsync增量同步备份命令用法详解

时间:2026-11-15 07:28     作者:emer     分类: 无


rsync 是 Linux 下做文件同步和备份最常用的工具,核心优势是增量传输:只传有变化的部分,第一次全量、后续只补差异,比 scp、ftp 整包复制省大量带宽和时间。网站目录异地备份、两台服务器镜像、本地定时同步都靠它。本文讲清常用参数、远程同步写法和容易踩的坑。

一、本地目录同步

把 source 目录内容同步到 dest,保持一致:

rsync -av /data/web/ /backup/web/

注意结尾斜杠:/data/web/ 表示同步目录里的内容;不带斜杠 /data/web 会把 web 目录本身拷过去,目标里多套一层。

二、通过 SSH 远程同步

拉取远端到本地:

rsync -avz root@192.168.1.10:/var/www/html/ /local/backup/

推送本地到远端:

rsync -avz /local/backup/ root@192.168.1.10:/var/www/html/

三、常用关键参数

# 删除目标端多出的文件,让两端严格一致(镜像)
rsync -av --delete /data/web/ /backup/web/

# 先演练不真正执行,检查会传什么、删什么
rsync -avn --delete /data/web/ /backup/web/

# 显示进度条和传输速率
rsync -av --progress /src/ /dst/

# 排除指定文件/目录
rsync -av --exclude='logs/' --exclude='*.tmp' /src/ /dst/

-n(dry-run)特别重要,配合 --delete 先演练,避免误删。

四、做定时备份脚本

结合 crontab 每天增量备份网站:

#!/bin/bash
rsync -avz --delete --exclude='cache/' \
  root@192.168.1.10:/var/www/html/ \
  /backup/web/$(date +%F)/

配密钥免密后加入 crontab,凌晨自动跑:

crontab -e
0 3 * * * /usr/local/bin/backup.sh

五、常见坑

  1. 结尾斜杠忘加,目标目录凭空多套一层,备份路径错乱。
  2. --delete 没加 -n 演练,误删目标端已有文件。
  3. 远程用密码交互,定时任务卡住,必须配 SSH 密钥免密。
  4. 跨机器属主不一致,-a 在普通用户下可能无法保留 uid,必要时加 --fake-super 或用 root。
  5. 大量小文件首次全量慢属正常,后续增量很快,别误以为卡死。
  6. 防火墙或安全组没放行 SSH 端口,连接直接超时。

总结

rsync 备份记住三点:-avz 保权限并压缩;源目录结尾斜杠决定是否套层;--delete 先 -n 演练再执行。远程同步配密钥免密交给 crontab,即可实现稳定的每日增量异地备份。

遇到问题加QQ23979811 协助处理

标签: SSH rsync 增量同步 文件备份 异地备份