适合 WordPress的 MySQL 自动备份定时任务脚本

数据的安全一直是我们最担心的,所以人们经常给重要数据做一个备份,防止意外发生,这样既可以把损失减到最低,甚至可以完全保障数据的完整可用性。

这是一份最稳定、最通用、适合 WordPress的 MySQL 自动备份定时任务,直接复制就能用,通过脚本+定时任务方式实现,它支持:

  • 每天自动备份
  • 按日期命名文件
  • 保留 N 天、自动清理旧文件
  • 备份文件单独目录,保证文件安全不乱

一、先创建备份存放目录

mkdir -p /backup/mysql
chmod 700 /backup/mysql

二、创建备份脚本:mysql_backup.sh

vim /backup/mysql_backup.sh

粘贴下面内容,只改数据库名、账号、密码即可:

#!/bin/bash

# 数据库信息
DB_NAME="你的数据库名"
DB_USER="数据库用户名"
DB_PASS="数据库密码"
DB_HOST="localhost"

# 备份存放路径
BACKUP_DIR="/backup/mysql"

# 日期格式
DATE=$(date +%Y-%m-%d_%H-%M-%S)

# 开始备份
mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/${DB_NAME}_$DATE.sql.gz

# 删除7天前的备份(自动清理)
find $BACKUP_DIR -name "${DB_NAME}_*.sql.gz" -type f -mtime +7 -delete

三、赋予执行权限

chmod +x /backup/mysql_backup.sh

先手动执行一次测试是否正常:

重要提醒:为了保证脚本的可用性,先自己本地测试过,确保能正常使用,不用直接上生产环境。

/backup/mysql_backup.sh

/backup/mysql 看有没有生成 .sql.gz 文件。


四、添加到 crontab 定时任务

如果你想每天 凌晨 2:00 自动备份,可以这样操作:

crontab -e

添加一行:

0 2 * * * /backup/mysql_backup.sh

保存退出即可。


五、如果你想备份所有数据库

把脚本里的 mysqldump 一行换成下面命令:

mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASS --all-databases | gzip > $BACKUP_DIR/all_db_$DATE.sql.gz

六、简单说明

  • 0 2 * * * → 每天 02:00 执行
  • gzip → 自动压缩,节省空间
  • -mtime +7 → 自动删除 7 天前 的备份,不占硬盘
  • 备份目录 /backup/mysql 不在网站目录下,更安全
  • –all-databases 表示备份所有数据库

七、安全小建议

  1. 不要用 root 账号备份,用 WordPress 专用数据库用户
  2. 脚本权限 700,避免泄露密码(因为脚本中存放有数据库的连接帐号密码)
  3. 定期下载一份到本地电脑

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流,禁止商用售卖 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress