1、创建backup.sh脚本文件
2、编辑脚本文件示例如下:
#!/bin/bash
#data_dir为数据库备份文件存放目录
data_dir="/data/backup/"
#判断是否存在目录,不存在创建
if [ ! -d $data_dir ];then
mkdir -p $data_dir
else
echo dir exist
fi
#server_mysql_1 为MySQL数据库的docker的容器名称,使用容器ID也可以;demo为数据库名称
docker exec server_mysql_1 mysqldump -u数据库名 -p数据库密码 demo > "$data_dir/demo_`date +%Y%m%d`.sql"
#删除30天以前的备份sql文件
find $data_dir -mtime +30 -name '*.sql' -exec rm -rf {} \;
完整示例:
#!/bin/bash
data_dir="/data/backup/"
if [ ! -d $data_dir ];then
mkdir $data_dir
else
echo dir exist
fi
docker exec server_mysql_1 mysqldump -uroot -p123456 demo > "$data_dir/demo_`date +%Y%m%d`.sql"
find $data_dir -mtime +30 -name '*.sql' -exec rm -rf {} \;
3、设置定时任务
#新建定时任务命令
crontab -e
进入编辑添加定时任务(每天凌晨一点执行):
0 1 * * * sh /server/backup.sh
备注:/server/backup.sh 定时执行的脚本路径
编辑完成,保存退出
#查看定时任务命令
crontab -l
网友评论