脚本mysqldump定时备份数据库

为了脚本不用输入密码,需要先设置mysql login-path,如下命令。host user需要改成你的mysql信息。

mysql/bin/mysql_config_editor set --login-path=root_login --host=127.0.0.1 --user=root --password

输入mysql密码后,会在 /root/目录下生成

 

 

备份脚本如下:

#!/bin/bash
#需要建立/sql_backup/data/文件夹
#如下可配置需要备份的数据库 如 common biz1
DBS=("common" "biz1")
for DBNAME in ${DBS[@]};do
#DBNAME="common"
FILE=$(date "+%Y%m%d%H%M%S")${DBNAME}.sql
GZFILE=$FILE.tar.gz
 
cd /sql_backup/data/
#mysqldump 命令路径
/usr/local/mysql/bin/mysqldump --login-path=root_login  $DBNAME > $FILE
tar -zcf $GZFILE $FILE
rm -f $FILE
done

然后执行下此脚本,看看能否生成压缩的sql文件,能生成说明运行正常,然后写计划任务定时执行就ok了。

我的设置每天凌晨两点执行,生成的文件如下图:

 

 

这个脚本还可以优化,比如按照日志放到一个文件夹里,再有就是做一个批量导入用于恢复数据,当然了,此脚本只适用于开发环境用,线上肯定要用类似binlog的功能做恢复的,才能保证业务数据不丢失。

注:如果在docker容器内运行crontab,可使用如下命令启动 crond服务。

/usr/sbin/crond -i

计划服务在容器内部执行,我参考的这篇文章

https://www.jianshu.com/p/abcf9548578d

posted @ 2022-04-30 11:55  阿飞afei  阅读(401)  评论(0编辑  收藏  举报