用 tar 做服务器定时备份:打包、压缩与恢复一次讲清

举报
yd_236639601 发表于 2026/11/02 12:49:32 2026/11/02
【摘要】 服务器上的配置、代码和数据,丢一次就知道备份的价值。tar 是 Linux 自带的打包工具,配合 gzip 压缩和 cron 定时,一套命令就能把备份做成习惯。 一、打包与压缩:先会这两条tar -czf backup-20261102.tar.gz /etc/nginx /var/wwwtar -tzf backup-20261102.tar.gz | head-c 创建归档,-z 用 g...

服务器上的配置、代码和数据,丢一次就知道备份的价值。tar 是 Linux 自带的打包工具,配合 gzip 压缩和 cron 定时,一套命令就能把备份做成习惯。

一、打包与压缩:先会这两条

tar -czf backup-20261102.tar.gz /etc/nginx /var/www
tar -tzf backup-20261102.tar.gz | head

-c 创建归档,-z 用 gzip 压缩,-f 指定文件名。打包后先用 -t 列出内容核对,别等到恢复那天才发现打错了目录。

只想备份某个子目录、排除缓存和日志时,加上 --exclude:

tar -czf backup.tar.gz --exclude='*.log' --exclude='node_modules' /var/www

日志和依赖目录往往占了大头,排除后备份体积能小一个数量级,恢复时也不用再手动清理。

二、增量备份:每天只打变化的部分

全量备份天天做既费磁盘又费时间,增量是更省事的办法:

tar -czf full.tar.gz -g snapshot.snar /var/www
tar -czf inc-1102.tar.gz -g snapshot.snar /var/www

-g 配合快照文件记录每个文件的状态,第一次打全量,之后每次只打包新增和改动过的文件。恢复时按顺序解开全量包再解开各增量包即可。快照文件要和备份包分开放,丢了它,增量链就断了。

三、恢复:先解到临时目录验一遍

mkdir -p /tmp/restore && tar -xzf backup.tar.gz -C /tmp/restore

永远不要直接往原目录解压覆盖:先解到临时目录,确认文件齐全、权限正常,再把需要的文件拷回去。覆盖前给原目录留一份当前快照,万一恢复错了还能退回来。

四、定时与异地:备份只做一半等于没做

0 3 * * * tar -czf /backup/www-$(date +\%F).tar.gz --exclude='*.log' /var/www

每天凌晨 3 点自动打包,文件名带日期,保留最近 7 天自动清理旧包:

find /backup -name 'www-*.tar.gz' -mtime +7 -delete

最后一步最容易被忽略:备份要离机。打包完用 rsync 或 scp 同步到另一台机器或对象存储,本地磁盘和备份在同一块盘上,盘一坏就全没了。

小结

tar 备份就四件事:打包时排除无用目录、增量省空间、恢复前先验包、备份必须异地。命令不难,难的是养成每天自动跑的习惯——备份的价值只在恢复那天才看得出来。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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