侧边栏壁纸
博主头像
laoliyun

生活总是这样,不能叫人处处都满意,但我们还要热情地活下去,人活一生值得爱的东西很多,不要因为一个不满意就灰心。

  • 累计撰写 138 篇文章
  • 累计创建 44 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

备份docker容器mysql脚本与定时器-shell脚本

laoliyun
2023-08-01 / 0 评论 / 0 点赞 / 524 阅读 / 481 字
温馨提示:
本文最后更新于 2023-08-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

docker-compose mysql5.7.31 数据库需要定时进行备份

环境

centos 7.9
docker-ce 24.0.5

脚本内容

cat mysql_back.sh

#!/bin/bash
#NAME:数据库备份
#DATE:2023/7/29
#USER:laoliyun

#设置本机数据库登录信息
#mysql_user="user"
#mysql_password="passwd"
#mysql_host="localhost"
#mysql_port="3306"
#mysql_charset="utf8mb4"
date_time=`date +%Y-%m-%d-%H-%M`

#保存目录中的文件个数
count=10
#备份路径
path=/root/back

#备份数据库sql文件并指定目录
#mysqldump --all-databases --single-transaction --flush-logs --master-data=2 -h$mysql_host -u$mysql_user -p$mysql_password > $path_$(date +%Y%m%d_%H:%M).sql
docker exec mysql mysqldump --single-transaction --flush-logs -uroot -proot halodb > /root/back/halodb_$(date +%Y%m%d_%H%M%S).sql
[ $? -eq 0 ] && echo "-----------------数据备份成功_$date_time-----------------" || echo "-----------------数据备份失败-----------------"

#找出需要删除的备份
delfile=`ls -l -crt $path/*.sql | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于阈值
number=`ls -l -crt $path/*.sql | awk '{print $9 }' | wc -l`
if [ $number -gt $count ]
then
          rm $delfile  #删除最早生成的备份,只保留count数量的备份
                                           #更新删除文件日志
            echo "-----------------已删除过去备份sql $delfile-----------------"
    fi

定时任务配置

30 08,11,15,18 * * * /bin/sh /root/mysql_back.sh >> /root/mysql_back_log.txt

注意

linux定时任务执行时,脚本里面的docker exec 命令需要去掉 -it

备份日志

cat mysql_back_log.txt

-----------------数据备份成功_-----------------
-----------------数据备份成功_2023-07-30-00-29-----------------
-----------------数据备份成功_2023-07-30-15-30-----------------
-----------------数据备份成功_2023-07-31-03-30-----------------
-----------------数据备份成功_2023-07-31-15-30-----------------
-----------------数据备份成功_2023-07-31-18-30-----------------
-----------------数据备份成功_2023-08-01-08-30-----------------
-----------------数据备份成功_2023-08-01-11-30-----------------
-----------------数据备份成功_2023-08-01-15-30-----------------
-----------------数据备份成功_2023-08-01-18-30-----------------
-----------------已删除过去备份sql /root/back/halodb_20230730_002701.sql-----------------
0

评论区