在 Ubuntu 中设置 SQLAdmin 备份频率
一 概念澄清与总体思路
- 在 Ubuntu 环境中,很多教程把 SQLAdmin 当作数据库管理工具的名称,但实际使用的是 mysqladmin 或 mysqldump 来执行备份;也有文章将其作为具备命令行子命令的工具(如 sqladmin backup)。无论采用哪种方式,备份频率都通过 cron 定时任务来控制,只需调整 crontab 的时间表达式即可。
二 使用 SQLAdmin 命令行设置频率
- 若你的环境提供 sqladmin 命令行工具(支持如 sqladmin backup 的子命令),可用以下方式设置频率:
- 创建备份脚本(示例):
#!/usr/bin/env bash
LOG="/var/log/sqladmin_backup.log"
TS=$(date +"%F_%H-%M-%S")
OUT="/var/backups/sqladmin_${TS}.sql.gz"
sqladmin backup -d mydatabase -o "$OUT" >> "$LOG" 2>&1
if [ $? -eq 0 ]; then
echo "[$TS] Backup succeeded: $OUT" >> "$LOG"
else
echo "[$TS] Backup failed" >> "$LOG"
fi
- 赋权:chmod +x /usr/local/bin/backup_sqladmin.sh
- 通过 cron 设置频率(编辑当前用户的 crontab):crontab -e
- 每天 02:00:0 2 * * * /usr/local/bin/backup_sqladmin.sh
- 每 2 小时:0 */2 * * * /usr/local/bin/backup_sqladmin.sh
- 每周一 02:00:0 2 * * 1 /usr/local/bin/backup_sqladmin.sh
- 每月 1 日 02:00:0 2 1 * * /usr/local/bin/backup_sqladmin.sh
- 验证:手动执行脚本并检查日志与备份文件是否生成。
三 使用 mysqladmin mysqldump 设置频率
- 若没有 sqladmin 命令,可直接用 mysqldump 完成备份并通过 cron 控制频率:
- 备份脚本示例(单库,压缩):
#!/usr/bin/env bash
BACKUP_DIR="/var/backups/mysql"
mkdir -p "$BACKUP_DIR"
LOG="$BACKUP_DIR/backup.log"
TS=$(date +"%F_%H-%M-%S")
FILE="$BACKUP_DIR/db_${TS}.sql.gz"
mysqldump -h localhost -u dbuser -p'dbpass' --single-transaction --routines --triggers mydb | gzip > "$FILE"
if [ $? -eq 0 ]; then
echo "[$TS] Dump OK: $FILE" >> "$LOG"
else
echo "[$TS] Dump FAILED" >> "$LOG"
fi
- 赋权:chmod +x /usr/local/bin/backup_mysql.sh
- 设置 cron(示例同上),如每天 02:00:0 2 * * * /usr/local/bin/backup_mysql.sh
- 全库备份可用:mysqldump -h localhost -u root -p --all-databases > “$FILE”。
四 频率建议与保留策略
- 频率建议
- 高变更业务:建议 每 2–4 小时 一次(0 */2–4 * * *),并配合 每日 全量备份。
- 一般业务:每日 全量(0 2 * * *)。
- 关键数据:在每日全量基础上,增加 每周 全量与 每月 全量,便于快速恢复与长期归档。
- 保留与清理