docker mysql容器定时备份

1查看docker容器信息

[root@xxxt01:/root] docker ps -a
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                               NAMES
ab87e7a22146        mysql                    "docker-entrypoint..."   8 days ago          Up 8 days           0.0.0.0:3306->3306/tcp, 33060/tcp   Mysql

2编辑定时执行脚本:

vim  mysql_backup.sh

#!/bin/bash
#数据库用户
db_user="root"
#数据库密码
db_password="123456"
#备份目录
backup_dir="/backup"
#备份数据库名
backup_databases="chemex"
#容器名
container_name="Mysql"
#时间戳
DATE=`date +"%Y%m%d%H%M"`
#判断目录是否存在,不在则创建
if [ ! -d $backup_dir ];then
   mkdir $backup_dir
fi
#执行数据库备份
docker exec  $container_name  /usr/bin/mysqldump -u$db_user -p$db_password $backup_databases >/$backup_dir/db_chemex_backup+$DATE.sql

mysqldump:必须使用绝对路径;
如果不知道路径,使用whereis mysqldump 来查看;
docker exec 后面不用加-it,否则备份出来的sql文件大小是0,为空文件;

3设置每天定时任务

crontan -e 
输入如下:
30 18 * * *  /backup/mysql_backup.sh
50 23 * * *  find /backup/ -mtime +30 -name "*.sql" -exec rm -rf {} \;
保存退出;
#每天18:30分执行数据库备份脚本
#每天23:50分查找目录下.sql文件,删除超过30天的文件

4.查看设置是否生效

[root@xxxt01:/root] crontab -l
30 18 * * *  /backup/mysql_backup.sh
50 23 * * *  find /backup/ -mtime +30 -name "*.sql" -exec rm -rf {} \;


关注小张的知识杂货铺,让我们一起学习一起进步

posted @ 2024-02-17 12:33  小张1995  阅读(71)  评论(0编辑  收藏  举报