简易不简单的MySQL数据库备份脚本-实战
本文将在Ubuntu20.04宿主机中操作,旨在备份docker容器中的数据库eblog
1、准备环境
如图,docker容器中MySQL服务正常,端口为13306
2、连接验证
说明:以上截图为直接访问的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任务调度,自动执行
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
3)、查看crontab任务
crontab -l
如上图,表示已经加载成功;如果没有加载进去,会提示如下图:
4)、通过查看数据库备份脚本执行结果,验证任务调度
成功,
完结,撒花!
感谢阅读,希望对您有所帮助。如有任何意见或建议,欢迎留言!