linux定时备份docker安装的mysql数据库

mysql版本:8.0.16

ubuntu版本:Ubuntu 18.04.1 LTS

1.mysql备份命令

如果mysqldump备份命令出现(Warning: Using a password on the command line interface can be insecure.) 警告信息,可以在my.cnf中加上以下内容:

[mysqldump]
user=your_backup_user_name
password=your_backup_password

然后直接使用mysqldump命令的时候就可以不需要用户和密码了

mysqldump dataBaseName | gzip > /backup/mysql/dataBaseName _$(date +%Y%m%d_%H%M%S).sql.gz

如果可以使用用户密码的格式就用这种格式

mysqldump -uusername -ppassword dataBaseName | gzip > /backup/mysql/dataBaseName _$(date +%Y%m%d_%H%M%S).sql.gz

2.编写数据库备份脚本

 

[root@localhost /]# mkdir -p /backup
[root@localhost /]# vim /backup/back.sh 

脚本内容:

#!/bin/sh


docker exec -i mysql bash <<'EOF'
#创建数据库备份路径的文件夹
mkdir -p /backup/mysql
 
#备份指定数据库,这里数据库备份时区要少8个小时,所以这里加上8小时
mysqldump dataBaseName  | gzip > /backup/mysql/dataBaseName_$(date -d "+8 hour" +%Y%m%d).sql.gz

#只保留容器中七天内的数据
find /backup/mysql -name "dataBaseName_*" -mtime +7 -exec rm -rf {} \;
exit
 
EOF
 
mkdir -p /backup
#从docker容器中将数据拷贝出来
docker cp mysql:/backup/mysql/dataBaseName_$(date +%Y%m%d).sql.gz /backup/mysql/
#只保留七天内的数据
find /backup/mysql -name "dataBaseName_*" -mtime +7 -exec rm -rf {} \;

3.给脚本文件设置权限,不然定时器执行不了脚本

[root@localhost backup]# chmod 755 /backup/back.sh 

4.设置定时器执行脚本(这里设置每天晚上两点备份数据库)

 

[root@localhost /]# crontab -e

 

0 2 * * *  /backup/back.sh

 

参考链接:https://blog.51cto.com/13941177/2310406

                 https://blog.csdn.net/MR1269427885/article/details/82978311

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值