Docker容器中的mysql自动备份脚本

Docker容器中的mysql自动备份脚本

1. 脚本功能

备份容器中的mysql数据库到宿主机上,自动删除7天前的备份文件

2. 脚本内容

#!/bin/bash
# auth Eric
source  /etc/profile
# 设置备份目录和文件名
backup_directory="/app/backup"
#测试名字用%Y%m%d%H%M%S正式可以用%Y%m%d
backup_filename="test_$(date +%Y%m%d).sql"

# 设置MySQL连接参数
mysql_host="localhost"
mysql_user="root"
mysql_port="3306"
mysql_password="a12345"
mysql_database="testdb"

# 创建备份目录(如果不存在)
mkdir -p "$backup_directory"

# 执行备份命令
docker exec  mysql /bin/bash -c 'mysqldump -u'"$mysql_user"' -p'"$mysql_password"' --port='"$mysql_port"' '"$mysql_database"  > $backup_directory/$backup_filename

#删除7天前数据
find $backup_directory -name "test_*.sql" -mtime +7 -exec rm {} \;

# 检查备份是否成功
if [ $? -eq 0 ]; then
  echo "MySQL数据库备份成功:$backup_directory/$backup_filename"
else
  echo "MySQL数据库备份失败"
fi

3. 如何使用

  1. 创建backupmysql.sh 填入上边的脚本内容

  2. 修改脚本中的配置项,备份目录、用户名、密码、端口号、数据库名字、备份周期等

  3. 手动执行脚本 sh /home/shell/backupmysql.sh 然后查看目的备份文件夹/app/backup是否有备份的sql文件,如果没有就排查脚本参数

  4. 设置定时任务执行脚本crontab -e

    测试阶段可以使用每两分钟执行一次

    */2 * * * * sh /home/shell/backupmysql.sh
    

    正式的可以每天备份一次

    * * * * * sh /home/shell/backupmysql.sh
    

4. 更多资料

Linux cron定时任务常用方法

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

RedEric

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

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

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

打赏作者

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

抵扣说明:

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

余额充值