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脚本,需要把数据库删除或新建数据库执行 

  

posted @ 2025-09-04 11:17  Sんí丶頭  阅读(14)  评论(0)    收藏  举报