备份别只会手动复制:用 tar 和 rsync 把备份与同步讲清楚

举报
yd_294877891 发表于 2026/11/08 10:49:57 2026/11/08
【摘要】 重要的文件丢了才想起备份,往往已经晚了。手动复制文件夹看起来省事,实际上问题很多:复制到一半被打断不知道哪些文件已复制、改过的文件和没改过的文件混在一起、权限和时间戳也可能在复制中丢掉。tar 和 rsync 是 Linux 上最常用的两件备份工具:tar 负责把一堆文件打包成一个归档,rsync 负责把两边的文件同步到一致。分工弄清楚了,备份才靠谱。第一步是先用 tar 打包。最常用的命令...

重要的文件丢了才想起备份,往往已经晚了。手动复制文件夹看起来省事,实际上问题很多:复制到一半被打断不知道哪些文件已复制、改过的文件和没改过的文件混在一起、权限和时间戳也可能在复制中丢掉。tar 和 rsync 是 Linux 上最常用的两件备份工具:tar 负责把一堆文件打包成一个归档,rsync 负责把两边的文件同步到一致。分工弄清楚了,备份才靠谱。

第一步是先用 tar 打包。最常用的命令是 tar -czvf backup-20261108.tar.gz /home/user/project,把整个项目目录打包并压缩成一个文件。-c 是创建归档,-z 是用 gzip 压缩,-v 是打印正在打包的文件名,-f 是指定归档文件名。需要恢复的时候,tar -xzvf backup-20261108.tar.gz 就能解开,-x 是解压。打包之前先确认磁盘空间够不够,一个几 GB 的目录压缩后可能仍有几百 MB,空间不足会中途失败。

tar 还有几个很实用的小技巧。打包时经常要排除某些目录,比如日志和临时文件:tar -czvf backup.tar.gz --exclude='*.log' --exclude='node_modules' project/,用 --exclude 把不需要的东西挡在外面。只想看看归档里有什么、不用解开,可以用 tar -tzvf backup.tar.gz 列出内容。备份之前先列出来看一眼,是个好习惯,能避免把不需要的大文件也打进包里。

第二步是 rsync,把两边同步到一致。最常见的用法是 rsync -avz project/ backup-server:/backup/project/,把本地目录同步到另一台机器。-a 是归档模式,保留权限、时间戳和属主;-v 是打印过程;-z 是传输时压缩。rsync 只传改动过的部分,第一次全量、之后都是增量,所以每天跑一次也不会很慢。同步之前先加 -n 演练一遍,rsync -avzn 只打印会做什么、不真的传文件,确认无误再去掉 -n 执行。

rsync 最容易踩的坑是结尾的斜杠。rsync -av src/ dest/ 是把 src 里面的内容同步到 dest 里;rsync -av src dest/ 则是把 src 这个目录本身复制到 dest 下面。只差一个斜杠,结果完全不同,操作前务必看清楚。另一个要小心的选项是 --delete,它会删除目标端多余的文件,让两边完全一致——用它之前一定要确认同步方向没反,否则删掉的是你想要的文件。

最后提醒两点。第一,备份不是做一次就完事:至少做到“定期 + 异地”,比如每周用 tar 打一份包、每天用 rsync 同步到另一台机器或另一个目录,只存在同一块硬盘上的备份,硬盘一坏就全没了。第二,备份做完要抽查恢复:每隔一段时间真的解开一个包、真的从备份里恢复一个文件,确认备份能用。没验证过的备份,等于没有备份。

一句话总结:tar 负责把文件打包归档,rsync 负责把两边同步到一致;打包前先排除、同步前先演练、做完定期抽查恢复。备份这件事,平时多花五分钟,出事时能省下好几天。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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