mysql 备份脚本,多数据库

该文章提供了一个使用bash脚本进行MySQL数据库批量备份的示例,包括设置备份目录,查询并备份所有非系统数据库,以及设置自动清除10天前的备份文件。此外,文章还提到了如何通过crontab设置定期运行备份和清理任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看备份效果,多个数据库,批量备份 

现在我们开始

  • 创建目录 ,数据,日志,脚本

/home/mysqlbak/data  

/home/mysqlbak/logs  

/home/mysqlbak/scripts

  • 话不多说直接开始  backup.sh
#!/bin/bash
#备份目录
BACKUP_ROOT=/home/mysqlbak
BACKUP_FILEDIR=$BACKUP_ROOT/data
#当前日期
DATE=$(date +%Y%m%d)
######备份######
#查询所有数据库
#-uroot -p123456表示使用root账号执行命令,且root账号的密码为:123456
DATABASES=$(mysql -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")
#循环数据库进行备份
for db in $DATABASES
do
echo
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------
mysqldump -uroot -p123456 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz END----------
done
  • 自动清除计划
#10表示清除十天前的数据备份
echo ----------CLEAN BEGIN----------

find /home/mysqlbak/data -mtime +10 -name "*.gz" -exec rm -rf {} \;

echo ----------CLEAN COMPLETE----------
  •  添加自动计划 crontab -e
00 1 * * * /home/mysqlbak/scripts/backup.sh > /home/mysqlbak/logs/backup.log 2>&1

00 2 * * * /home/mysqlbak/scripts/backup_clean.sh > /home/mysqlbak/logs/backup_full_clean.log 2>&1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有昵称的工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值