linux 定时备份docker 安装的MySQL的数据,并定时清理往期数据,备份数据库数据导入

1.新建脚本:testbackupsql.sh (需要授权:777最高权限)

#!/bin/bash

expire_backup_delete="ON"
backup_time=`date +%Y%m%d%H%M`

docker exec -i mysql mysqldump -uroot -p123456 base | gzip > /home/testbackupsql/mysql_backup-$backup_time.sql.gz

if [ "$expire_backup_delete" == "ON"  ];then
        `find /home/testbackupsql/ -type f -mtime +2 | xargs rm -rf`
        echo "Expired backup data delete complete!"
fi

find /home/testbackupsql/ -type f -mtime +2 | xargs rm -rf 删除创建时间是2天以前的备份

备份文件压缩成了.gz格式,减少内存占用,解压使用:gunzip *****.gz

2.定时任务:

crontab -e 编辑

 

#定时器定时备份数据库数据(每分钟执行一次)
# */1 * * * * /home/testbackupsql.sh > /tmp/testbackup.log 2>&1

#定时任务每天两点执行数据库备份任务
0 2 * * * /home/testbackupsql.sh > /tmp/testbackup.log 2>&1

.log文件是定时任务的日志文件,方便查看定时任务的执行情况

 

定时任务修改完,需要重启:service crond restart

 

3.docker 安装的MySQL   数据导出,导入

 

docker备份数据指令

container_name:容器名称,此处也可填容器ID。

db_user:数据库账号。

db_password:数据库密码。

database:要备份的数据库。

file_path:备份出来的文件名。

 

docker exec -it {container_name} mysqldump -u{db_user} -p{db_password} {database} > {file_path}

 

 

4.导入:

1、查看mysql容器

docker ps

 

比如我的是:94df84cbaaaa

2、复制sql文件到docker mysql里面的tmp文件夹

docker cp ./admin.sql 94df84cbaaaa:/tmp/

 

3、然后进入docker mysql里面执行命令登录mysql

1. docker exec -ti 94df84cbaaaa /bin/bash
2. msyql -u root -p
3. 回车输入密码

 

4、然后选择数据库

use admin;

 

5、执行命令导入

source /tmp/admin.sql

 

完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值