使用docker每日备份mysql数据库

昨天数据库被比特币勒索了,数据库都被删除了。淦!所以以后为了避免这种情况就需要给数据库做一下每日备份。

首先需要获取到docker中正在运行的容器Id(保证容器正在运行)

新建脚本文件 修改脚本文件内容更改成对应的数据
containerId = 容器id
UserName = 数据库用户名
Pwd=密码
dataBaseName =数据库名称

#!/bin/bash
dateBackup=$(date +%Y-%m-%d)
docker exec -i  containerId bash -c 'mysqldump -defaults-extra-file=/home/my.cnf -uUserName -pPwd dataBaseName > /home/conversion_'${dateBackup}'.sql'

–defaults-extra-file这个参数一定是要加的如果你的数据库是5.6版本以上,因为这里好像是可以跳过MySQL的保护机制不需要你再次输入密码(有大佬知道的希望可以解惑),/home/my.cnf这个文件是我自己创建的,类似于这样就可以了

[client]
host = localhost
user = root
password = root
database = 123456

之后开始运行脚本

chmod u+x backup.sh
./backup.sh

如果脚本运行没问题的话就需要去docker的路径下去找你的备份脚本,如果不清楚的话也可以直接 find / -name ‘*.sql’ 在根目录下直接寻找sql后缀的文件
如果运行脚本后出现/bin/bash^M : bad interpreter : No such file or Directory这个问题后,将脚本通过vi或vim打开,按ESC进入命令模式。按:(冒号)输入set fileformat=unix。之后输入:(冒号)wq保存即可

最后再使用linux cron定时运行
crontab -e
0 5 * * * /xxx/backups/backup.sh (每日五点执行)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值