mysql备份脚本

MySQL备份脚本

复制代码
#!/bin/bash
# MySQL连接参数
MYSQL_USER=root
MYSQL_PASSWORD="xxxxxxx"
# 备份目录
BACKUP_DIR=/home/mysql_backup
# 要备份的数据库列表(空格分隔)
DB1=testdb1
DB2=mysql
##如果有需要过滤的备份的表



# 保留天数
DAYS_TO_KEEP=7
# 当前日期
DATE=$(date +%Y%m%d)
# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE
# 记录日志
echo "$(date +'%Y-%m-%d %H:%M:%S') - Backup Start" > $BACKUP_DIR/logs/backup-$DATE.log

# 备份数据库 DB1=testdb
echo ---backup $DB1  >> $BACKUP_DIR/logs/backup-$DATE.log
mysqldump --single-transaction --set-gtid-purged=off --master-data=2 --routines --triggers --events -u$MYSQL_USER -p$MYSQL_PASSWORD $DB1 | gzip > $BACKUP_DIR/$DATE/$DB1-full-$DATE.sql.gz

send=`date '+%Y-%m-%d %H:%M:%S'`
if [ $? -ne 0 ];
then
    echo "$send $DB1 数据备份失败" >> $BACKUP_DIR/logs/backup-$DATE.log
    exit -1
else
    echo "$send $DB1 数据备份成功!" >> $BACKUP_DIR/logs/backup-$DATE.log
fi

# 备份数据库 DB2=mysql
echo ---backup $DB2  >> $BACKUP_DIR/logs/backup-$DATE.log
mysqldump --single-transaction --set-gtid-purged=off --master-data=2 --routines --triggers --events -u$MYSQL_USER -p$MYSQL_PASSWORD $DB2 | gzip > $BACKUP_DIR/$DATE/$DB2-full-$DATE.sql.gz

send=`date '+%Y-%m-%d %H:%M:%S'`
if [ $? -ne 0 ];
then
    echo "$send $DB2 数据备份失败" >> $BACKUP_DIR/logs/backup-$DATE.log
    exit -1
else
    echo "$send $DB2 数据备份成功!" >> $BACKUP_DIR/logs/backup-$DATE.log
fi

# 删除旧备份
find $BACKUP_DIR -type d -mtime +$DAYS_TO_KEEP -exec rm -rf {} \;

# 记录日志
echo "$(date +'%Y-%m-%d %H:%M:%S') - Backup End" >> $BACKUP_DIR/logs/backup-$DATE.log
相关推荐
CHB10 小时前
uni-app x 蒸汽模式 性能测试基准报告 Benchmark【Android版】
android·ios·uni-app
带娃的IT创业者11 小时前
拆掉那堵墙:LibrePods 如何让 AirPods 在 Android 上重获新生
android·开源项目·airpods·librepods·生态解锁
xiaoye-duck11 小时前
MySQL 表约束全解:从基础约束到外键关联规则
数据库·mysql
冷凝娇13 小时前
【MySQL】2026总结(二)
数据库·mysql
_阿南_13 小时前
flutter 展示的字体突然奔放了
android·flutter·ios
wWYy.14 小时前
Mysql:Read View
数据库·mysql
—Miss. Z—15 小时前
存储过程、用户定义函数、触发器和游标
数据库·mysql
小码农 - 初15 小时前
MySQL 的约束
mysql
文人sec15 小时前
MySQL事务与索引做了什么?
android·笔记·mysql
刘洋浪子16 小时前
AndroidStudio保存日志菜单
android