服务器定期备份策略,防止误删数据无法恢复

服务器上的数据一旦被误删,如果没有备份,往往只能依靠磁盘恢复工具碰运气。
一套可执行的定期备份策略,核心是把备份任务自动化、把备份文件放到不同位置、并且定期验证能恢复
下文按零基础也能照做的顺序,讲清从准备到验证的完整流程。

先确认备份对象和存放位置

动手写命令前,先列清楚要备份什么。
常见三类:网站目录、数据库、配置文件。

  • 网站目录:例如 /www/wwwroot/你的站点/var/www/html
  • 数据库:MySQL 用 mysqldump,PostgreSQL 用 pg_dump
  • 配置文件:/etc/nginx//etc/mysql/

备份文件不要和源数据放在同一块磁盘。本地备份只防误删,不防磁盘损坏,建议至少保留一份到另一台服务器或对象存储。

mkdir -p /backup/site /backup/db /backup/conf
df -h /backup   # 确认备份盘剩余空间

用 tar 打包网站目录

网站目录文件多,直接复制效率低,用 tar 打包并压缩。
下面命令把网站目录打包到 /backup/site,文件名带日期,方便区分。

tar -czf /backup/site/site_$(date +%F).tar.gz /www/wwwroot/你的站点
ls -lh /backup/site/

执行后看到 site_2025-01-01.tar.gz 这类文件,且大小不为 0,说明打包成功。
如果提示 file changed as we read it,通常是有进程正在写文件,可以忽略,但最好在低峰期执行。

导出数据库并保留 SQL 文件

数据库不能直接复制文件,用 mysqldump 导出逻辑备份。
以下命令导出单个库,并压缩保存。

mysqldump -u root -p --single-transaction 你的库名 | gzip > /backup/db/db_$(date +%F).sql.gz

--single-transaction 适合 InnoDB 表,能在不锁表的情况下导出。
执行后会提示输入密码。
导出完成后用 zcat 检查文件头,确认不是空文件。

zcat /backup/db/db_$(date +%F).sql.gz | head -n 5

设置 crontab 自动执行

手动备份容易忘,用 crontab 定时。
执行 crontab -e,加入下面两行:每天凌晨 2 点备份网站,2 点 30 分备份数据库。

0 2 * * * tar -czf /backup/site/site_$(date +\%F).tar.gz /www/wwwroot/你的站点
30 2 * * * mysqldump -u root -p'你的密码' --single-transaction 你的库名 | gzip > /backup/db/db_$(date +\%F).sql.gz

注意 % 在 crontab 中需要转义为 \%
保存后可以用 crontab -l 查看是否写入成功。
第二天检查 /backup 下是否出现新文件。

避坑:备份失败的常见原因

  • 密码写错或包含特殊字符:命令行中密码含 $! 等符号时,建议用单引号包裹,或改用 ~/.my.cnf 配置文件。
  • 磁盘写满:备份文件会持续增长,建议加清理策略,例如只保留最近 7 天:find /backup -name "*.gz" -mtime +7 -delete
  • 只备份不验证:备份文件损坏或为空时,恢复阶段才发现就晚了。每周至少抽查一次。
  • 备份和源数据同盘:服务器磁盘故障时一起丢失,务必异地保存一份。

验证备份是否真的能恢复

备份的最终目的是恢复。
建议在测试目录解压并导入,确认文件完整。

mkdir -p /tmp/restore_test
tar -xzf /backup/site/site_$(date +%F).tar.gz -C /tmp/restore_test
ls /tmp/restore_test

数据库恢复测试可以导入到一个临时库:

mysql -u root -p -e "CREATE DATABASE test_restore;"
zcat /backup/db/db_$(date +%F).sql.gz | mysql -u root -p test_restore

能正常解压、导入无报错,说明备份可用。定期备份策略是否有效,不看备份文件数量,而看恢复测试是否通过。

常见疑问

备份文件保留多久合适? 取决于数据重要性和磁盘空间。
常见做法是本地保留 7 天,异地保留 30 天,具体以实际存储容量为准。

宝塔面板用户怎么操作? 宝塔后台有“计划任务”功能,可添加“备份网站”和“备份数据库”任务,设置执行周期和保留份数,效果与命令行一致。

误删后第一时间做什么? 立即停止对相关目录的写入,优先从最近备份恢复;
如果备份也不可用,再考虑专业数据恢复,且不要在原盘上继续操作。

按上述步骤配置后,你至少拥有网站和数据库的定时备份,并有恢复验证方法。
后续可根据数据量调整频率和保留策略,但“异地存一份、定期验一次”这两条不建议省。

分享到:
上一篇
服务器安全基线加固,关闭不必要端口与服务
下一篇
服务器挂载磁盘失败,fstab配置错误修复方案
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意