linux定时执行脚本备份docker中的mysql

1.编写脚本

  1. 准备试验机器,安装mysql环境
  2. 执行脚本
  3. 进入容器内部(我的容器name就是mysql)
  4. 创建容器内目录(放备份的sql)
  5. 执行mysqldump命令,存储备份文件到容器内相应目录
  6. 整理数据
  7. 回到宿主机,继续创建目录,用来接收容器中备份的sql文件
  8. 从容器中拷贝备份文件到宿主机第七步创建的的目录
  9. 整理数据
  10. 宿主机与目标服务器设置免密,然后将备份文件分发到目标服务器

#!/bin/bash
docker exec -i mysql bash<<'EOF'
#docker exec -it mysql /bin/bash<<'EOF'
# 判断目录是不是已经存在,如果不存在则创建
if [ ! -d "/backups/mysql" ]; then
  mkdir -p /backups/mysql
fi
# gimline 为数据库的名称
mysqldump -u nsc-dev --password=nsc_dev@intranet  gimline > /backups/mysql/gimline_$(date +%Y%m%d).sql

#添加多行即可

#删除超过10天的数据
rm -f /backups/mysql/gimline_$(date -d -10day +%Y%m%d).sql
exit
EOF
# 判断目录是不是已经存在,如果不存在则创建
if [ ! -d "/backups/mysql" ]; then
  mkdir -p /backups/mysql
fi
# 将docker中的备份的数据拷贝到宿主机上。mysql是容器name
docker cp mysql:/backups/mysql/gimline_$(date +%Y%m%d).sql /backups/mysql
#删除超过10天的数据
rm -f /backups/mysql/gimline_$(date -d -10day +%Y%m%d).sql

#分发数据到远程服务器
scp /backups/mysql/* root@10.83.43.78:/backups/mysql/
 

 2.根据备份,恢复数据(要有对应的db,没有表也是可以恢复数据的,db是必须要存在的)

mysql -u nsc-dev -p'nsc_dev@intranet' gimline < /backups/mysql/gimline_20211216.sql

 3.安装cronie

此处提供离线方式安装,下载好rpm,此处提供下载rpm包地址

阿里云开源镜像站资源目录

rpm -ivh cronie-1.4.11-23.el7.x86_64.rpm --nodeps

rpm -ivh crontabs-1.11-6.20121102git.el7.noarch.rpm

rpm -ivh cronie-anacron-1.4.11-23.el7.x86_64.rpm

命令如下

service crond start
service crond stop
service crond restart
service crond reload
service crond status

4.编辑任务


crontab -e 

每天凌晨12点01分执行该路径下脚本
1 0 * * *  sh /root/backup_docker_mysql.sh

cron示例,剩下自己研究

*     *  *  *  *            command 
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令

 5.脚本查看,添加了从宿主机到远程服务器命令(宿主机配置了免密登录远程服务器)

 分发私钥参考如下

配置免密登录服务器
生成私钥
/root目录下执行如下命令,一路回车
ssh-keygen
分发私钥到目标的服务器(此处10.83.43.78就是目标服务器),也可以发给自己
ssh-copy-id  root@10.83.43.78
测试连接
ssh root@IP/hostname

调整后的脚本如下

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值