mysql(35) : 定时备份docker部署的mysql数据及删除n天之前备份

自动备份docker部署的mysql数据并复制到宿主机及压缩,然后删除n天之前备份的数据

备份最细粒度为小时

备份mysql数据脚本

cat > save_mysql_data.sh <<'EOF'
#!/bin/sh
path="$( cd "$( dirname "$0"  )" && pwd  )"
sed -i "s#database_name#$1#g" $path/handle.sh
sh $path/handle.sh
sed -i "s#$1#database_name#g" $path/handle.sh
EOF

cat > handle.sh <<'EOF'
#!/bin/sh
path="$( cd "$( dirname "$0"  )" && pwd  )"
cd $path
# 导出sql
docker exec -it --env LANG=C.UTF-8 mysql /bin/bash   -c 'mysqldump -uroot -p123456 database_name > /home/database_name.sql'
# 复制到宿主机并添加时间后缀
docker cp mysql:/home/database_name.sql $path
day=`date -d "now" +%Y-%m-%d-%H`
nf="database_name_$day.sql"
mv $path/database_name.sql $path/$nf
# 压缩
gzip $path/$nf
# 删除30天之前的备份
dqt=`date -d -30day +%Y-%m-%d`
df="database_name_$dqt.sql.gz"
echo "删除文件: $df"
rm -rf $path/$df
EOF

注 : 注意修改mysql密码 

备份任务(每日0点和12点)

crontab -e 添加以下任务

0 0,12 * * * sh /root/save_mysql_data.sh test

注 : main.sh必须为全路径名,参数为数据库名称,执行后会在备份到当前目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值