简易不简单的MySQL数据库备份脚本-实战

本文详细介绍了如何在Ubuntu20.04环境下,为运行在Docker容器内的MySQL数据库eblog创建一个自动备份脚本,并通过crontab设置定时任务,实现每日定时备份。脚本包括了备份路径设定、连接参数、备份与压缩、清理旧备份等步骤,并展示了成功执行的结果。
摘要由CSDN通过智能技术生成

简易不简单的MySQL数据库备份脚本-实战

本文将在Ubuntu20.04宿主机中操作,旨在备份docker容器中的数据库eblog

1、准备环境

如图,docker容器中MySQL服务正常,端口为13306
环境准备-如图;本地数据库均可

2、连接验证

docker容器中数据库连接验证

说明:以上截图为直接访问的docker容器中的MySQL,如果提示没有MySQL命令请跟进提示进行安装MySQL客户端;

3、编写脚本

vim mysql_db_backup.sh

编写如下脚本

#/bin/sh
#备份路径
BACKUP=/home/maph/mysql_backup
#DATETIME=$(date +%Y-%m-%d)
DATETIME=$(date +%Y%m%d%H%M%S)
echo "=============开始备份==========="
echo "=============备份的路径是$BACKUP/$DATETIME.tar.gz"
#主机
HOST=172.16.16.4
#端口
PORT=13306
#用户名
DB_USER=root
#密码
DB_PWD=123456
#备份的数据库名
DATABASE=eblog
#创建备份的路径:如果备份的路径文件夹存在,就使用,不存在,就先创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
#执行数据库备份命令
mysqldump --column-statistics=0 -u${DB_USER} -p${DB_PWD} --host=$HOST --port=$PORT $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
#打包备份的文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME
#删除临时目录
rm -rf $BACKUP/$DATETIME
#删除10天前的备份文件
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "=============备份文件成功=========="

给脚本文件添加可执行权限,在刚才创建脚本的同一(当前)路径下

chmod +x mysql_db_backup.sh

4、执行

脚本执行及输出结果截图

5、执行结果

备份压缩包路径下内容截图

6、配置到crontab任务调度,自动执行

参加crontab定时任务管理配置

1)、在/root/bin下创建cron.sh
#59 23 * * * sh /root/bin/mysql_db_backup.sh 1>/dev/null 2>/dev/null 
34 12 * * * sh /root/bin/mysql_db_backup.sh 1>/dev/null 2>/dev/null

以上语句的意思是:每天12点34分执行一次

2)、将数据库备份脚本加载到crontab中调度
crontab cron.sh

将数据库备份脚本加载到crontab中

3)、查看crontab任务
crontab -l

成功加载进crontab任务调度

如上图,表示已经加载成功;如果没有加载进去,会提示如下图:
在这里插入图片描述

4)、通过查看数据库备份脚本执行结果,验证任务调度

成功
成功,
完结,撒花!
感谢阅读,希望对您有所帮助。如有任何意见或建议,欢迎留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值