数据迁移备份
网站数据库自动备份脚本配置教程:手把手教你设置

有个做电商的朋友,店铺跑了两年多,某天数据库表损坏,一查发现压根没配过自动备份。最后花了不少钱找数据恢复公司,只找回八成数据。这种教训其实完全可以避免——一个脚本加一行定时任务的事。

备份脚本怎么写

以MySQL为例,核心就一条mysqldump命令。但光dump还不够,得加上压缩和日期命名,方便日后查找。脚本逻辑分三步:导出数据库、压缩归档、清理过期文件。

脚本里几个关键参数要说清楚:--single-transaction保证InnoDB表备份时不锁表,对线上业务无影响;--routines把存储过程也导出来,别漏了;压缩用gzip就行,文本数据压缩率很高,能省七八成空间。文件名带上日期变量$(date +%Y%m%d),一眼就知道是哪天的备份。

清理逻辑也重要,否则备份文件会无限增长。用find命令按天数删除,比如保留最近30天:find /backup/db -name "*.gz" -mtime +30 -delete。别小看这行,好多人配了备份不管清理,磁盘满了导致后续备份静默失败,出事才发现。

定时任务怎么配

脚本写好放在/root/backup_db.sh,记得chmod +x给执行权限。然后crontab -e添加定时:0 2 * * * /root/backup_db.sh,表示每天凌晨两点执行。建议选业务低峰时段,别赶在流量高峰跑备份。

配完一定要手动跑一次验证。好多脚本上线后从没执行过,或者路径写错根本没生效。跑完检查备份目录里有没有当天的文件,文件大小是否正常,打开确认内容不是空的——这三步缺一不可。