mysql定时备份和清理
1、shell脚本ms_auto_bak.sh
#!/bin/bash
# 数据库信息配置
DB_USER="" # 数据库用户名
DB_PASSWORD="" # 数据库密码
DB_NAME="" # 数据库名称
# 备份保存路径
BACKUP_DIR="/var/lib/pgsql/msback"
DATE=$(date +%F)
FILENAME="${DB_NAME}_${DATE}.sql"
TARFILE="${FILENAME}.tar.gz"
# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"
# 开始备份
echo "[$(date)] 开始备份数据库 $DB_NAME ..."
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > "$BACKUP_DIR/$FILENAME"
# 压缩备份
tar -czf "$BACKUP_DIR/$TARFILE" -C "$BACKUP_DIR" "$FILENAME"
rm "$BACKUP_DIR/$FILENAME"
echo "[$(date)] 备份完成:$TARFILE"
# 自动删除7天前的旧备份
find "$BACKUP_DIR" -name "${DB_NAME}_*.tar.gz" -mtime +7 -exec rm {} \;
echo "[$(date)] 清理7天前备份完成"
2、chmod +x ms_auto_bak.sh 添加执行权限
3、定时执行配置:
输入crontab -e打开linux定任务配置文件,添加代码行:
# 每晚23点50分自动备份postgresql数据库
50 23 * * * /home/pgDataBak/ms_auto_bak.sh
4、恢复数据
用数据库工具navicat直接执行sql脚本,需要把数据库删除或新建数据库执行

浙公网安备 33010602011771号