小服务器别裸奔:十分钟给重要数据加个自动备份

举报
yd_230305343 发表于 2026/11/07 11:10:48 2026/11/07
【摘要】 前面几篇讲的都是「出了事怎么查」,这篇讲「出事之前怎么留后路」。小服务器最惨的事故往往不是宕机,而是数据没了:一条命令删错目录、一块盘突然损坏、一次改配置改到起不来——只要没有备份,排查技术再好也救不回来。好消息是,够用的备份不用买任何服务,系统自带的工具十分钟就能搭好。 先想清楚:备什么、备到哪、留多久三个问题先有答案,命令只是照着填:备什么:只备「丢了没法重建」的东西——网站目录、数据库...

前面几篇讲的都是「出了事怎么查」,这篇讲「出事之前怎么留后路」。小服务器最惨的事故往往不是宕机,而是数据没了:一条命令删错目录、一块盘突然损坏、一次改配置改到起不来——只要没有备份,排查技术再好也救不回来。好消息是,够用的备份不用买任何服务,系统自带的工具十分钟就能搭好。

先想清楚:备什么、备到哪、留多久

三个问题先有答案,命令只是照着填:

  • 备什么:只备「丢了没法重建」的东西——网站目录、数据库、你改过的配置文件。系统本身和能重装的软件不用备。
  • 备到哪:至少不能只放在同一块盘上。同机另一个目录只能防误删,防不了盘坏;有第二台机器或对象存储,就再往外同步一份。
  • 留多久:按天滚动留 7 份是常见起点,占空间不大,又能覆盖「过了几天才发现」的错误。

一条命令打包,一个定时任务自动跑

先手动打一次包,确认能打、能解开:

sudo tar czf /backup/site-$(date +%F).tar.gz /var/www /etc/nginx

能生成、能 tar tzf 列出内容,才往下走。数据库别直接拷数据文件,先用 mysqldump 导出成 sql 再打包,恢复时才干净。

然后交给 cron 每天凌晨自动执行,并只保留最近 7 份:

# /etc/cron.daily/backup-site
#!/bin/bash
tar czf /backup/site-$(date +%F).tar.gz /var/www /etc/nginx
find /backup -name 'site-*.tar.gz' -mtime +7 -delete

脚本记得加执行权限(chmod +x)。最后一步最容易被省掉、也最重要:随便挑一份备份,解开看看文件在不在、内容对不对。没验证过的备份,等于没有备份——真到恢复那天才发现包是坏的,是运维最经典的二次事故。

结论

备份的门槛不在技术,在习惯:想清备什么、备到哪、留多久,一条 tar 命令加一个定时任务就落地了。今天花十分钟把这道保险上好,往后删错、改错、盘坏,你都只需要说一句「恢复昨天的」。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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