第一次用 rsync 备份:只传变化的部分,省时又省心

举报
yd_255726501 发表于 2026/11/13 08:20:56 2026/11/13
【摘要】 重要文件只放在一台机器上,心里总不踏实。复制粘贴整个文件夹当备份,文件一多就慢得受不了,还容易把新旧版本搞混。rsync 就是为了解决这个问题:它只传变化的部分,第一次全量、之后增量,备份一次比一次快。rsync 最基本的用法只有一个命令:rsync -av 源目录/ 目标目录/。-a 是归档模式,保留权限、时间戳和目录结构;-v 是输出过程,让你看清传了什么。注意源目录后面的斜杠:带斜杠表...

重要文件只放在一台机器上,心里总不踏实。复制粘贴整个文件夹当备份,文件一多就慢得受不了,还容易把新旧版本搞混。rsync 就是为了解决这个问题:它只传变化的部分,第一次全量、之后增量,备份一次比一次快。

rsync 最基本的用法只有一个命令:rsync -av 源目录/ 目标目录/。-a 是归档模式,保留权限、时间戳和目录结构;-v 是输出过程,让你看清传了什么。注意源目录后面的斜杠:带斜杠表示同步目录里的内容,不带斜杠表示把整个目录本身复制过去。这个细节第一次用最容易搞错,先在测试目录试一次再动真格。

为什么说它只传变化的部分?rsync 会先比较两边文件的大小和修改时间,没变的文件直接跳过;变了的文件也只传变化的数据块,而不是整个文件重新传一遍。所以每天备份一个几 GB 的项目文件夹,实际传输的可能只有几 MB。这也是它比 cp 和 scp 更适合做日常备份的原因:cp 每次全量复制,scp 每次全量传输,只有 rsync 懂得“只补差价”。

备份到远程机器也很简单:把目标换成 user@远程主机:路径 即可,比如 rsync -av ~/项目/ user@备份机:/backup/项目/。第一次会提示确认主机指纹并输入密码,之后配合 SSH 免密登录就能做到一键备份。想先看清会发生什么、又不想真的改动目标,可以加 --dry-run:它只打印将要同步的文件列表,什么都不写,是正式备份前最安全的演练方式。

三个新手常踩的坑。第一是误删:加了 --delete 后,源目录删掉的文件也会在目标同步删除,用错方向会把备份清空,所以 --delete 只在确认源是唯一正确版本时才用。第二是排除文件:日志、缓存、node_modules 这类不需要备份的东西,用 --exclude 'node_modules/' 排除掉,能省下大量时间和空间。第三是断点续传:大文件传到一半断网,不加 --partial 就得从头再来,加上它可以接着传。

把备份变成习惯,靠的不是记性而是定时任务。把 rsync 命令写进一个小脚本,再用 crontab 每天凌晨跑一次,备份就成了不需要操心的背景工作。第一次配通之后,可以再进一步:用 --link-dest 做带硬链接的历史快照,每次备份只占增量空间,却能随时回到任意一天的状态。备份的价值平时看不见,出问题那天才知道它值多少钱。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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