用 rsync 同步文件:从本地备份到远程增量

举报
yd_28502004 发表于 2026/11/10 06:18:39 2026/11/10
【摘要】 用 rsync 同步文件:从本地备份到远程增量复制文件大家都会用 cp,但要把一台服务器的目录定期同步到另一台、只传改动的部分、断网后能续传,cp 就不够用了。rsync 是 Linux 下最常用的同步工具:增量传输、断点续传、还能保持权限和时间戳。今天把最常用的几种用法一次讲清。一、本地同步:先会 -av最基本的写法是:rsync -av 源目录/ 目标目录/-a 是归档模式,一次性保留权...

用 rsync 同步文件:从本地备份到远程增量

复制文件大家都会用 cp,但要把一台服务器的目录定期同步到另一台、只传改动的部分、断网后能续传,cp 就不够用了。rsync 是 Linux 下最常用的同步工具:增量传输、断点续传、还能保持权限和时间戳。今天把最常用的几种用法一次讲清。

一、本地同步:先会 -av

最基本的写法是:

rsync -av 源目录/ 目标目录/

-a 是归档模式,一次性保留权限、时间戳、属主和软链接;-v 是显示传输过程。第一次用 rsync 最容易踩的坑是源目录末尾的斜杠:源目录带 / 表示只同步目录里面的内容,不带 / 则会把目录本身也复制过去。写命令前先想清楚你要的是哪一种。

二、只传改动的部分

rsync 的核心是增量:它先比较两边文件的大小和修改时间,只传新增或改过的文件。第一次同步 1GB 的目录可能要几分钟,改了一个小文件后再跑一次,往往一秒就完成,只传了几 KB。这也是它适合做定期备份的原因——每次只补变化量。

三、同步到远程服务器

rsync -av 本地目录/ 用户名@服务器地址:/目标路径/

远程同步走 SSH,不用在服务器上另外装服务端。传文本多的目录可以加 -z 开启压缩;传大文件加 --progress 看进度,心里有数。配合 SSH 免密登录,写进脚本里就能无人值守跑。

四、排除不需要的文件

备份代码目录时,node_modules 和日志文件没必要同步:

rsync -av --exclude ‘node_modules’ --exclude ‘*.log’ 源目录/ 目标目录/

排除规则多了可以写进一个文本文件,用 --exclude-from=exclude.txt 统一管理,每行一条规则。

五、–delete:让两边完全一致

加上 --delete 后,目标端多余的文件会被删掉,同步完两边一模一样,适合做镜像备份。但这也是最危险的参数:源目录路径写错,可能误删目标端文件。正确姿势是先加 -n(–dry-run)演练一遍,确认要传什么、删什么,确认无误后再去掉 -n 真正执行。

六、断点续传与限速

-P 相当于 --partial 加 --progress,支持断点续传:大文件传一半断了,下次接着传,不用重来。–bwlimit=1000 可以把速度限制在 1000KB/s,避免同步占满带宽影响线上业务。

七、实战:每天凌晨自动备份

结合 crontab,每天凌晨 2 点把 /data 同步到备份机:

0 2 * * * rsync -az --delete /data/ 用户名@备份机地址:/backup/data/

配合免密 SSH 密钥使用,跑起来后基本不用管,定期看一眼日志确认成功即可。

小结

rsync 的核心就两点:增量(只传变化)和精确(目标与源一致)。记住两条安全习惯:先用 -n 演练再动真格,–delete 一定先确认源目录路径。小步验证后再上定时任务,备份这件事就稳了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。