1.在服务器下载安装crontab
yum -y install vixie-cron
yum -y install crontabs
2.编写 shell脚本
#!/bin/bash
#:set fileformat=unix
docker exec -i 容器名称 bash<<'EOF'
if [ ! -d "备份路径" ];then
mkdir -p 备份路径
fi
mysqldump -u账号 -p密码 数据库名称 >
备份路径/数据库名称_$(date +%Y%m%d).sql
#删除超过10天的数据
rm -f 备份路径/数据库名称_$(date -d -3day +%Y%m%d).sql
exit
EOF
# 判断目录是不是已经存在,如果不存在则创建
if [ ! -d "备份路径" ];then
mkdir -p 备份路径
fi
# 将docker中的备份的数据拷贝到宿主机上。
docker cp 容器名称:备份路径/数据库名称_$(date +%Y%m%d).sql 备份路径
#删除超过10天的数据
rm -f 备份路径/数据库名称_$(date -d -3day +%Y%m%d).sql
3. chmod 700 脚本.sh #给予权限
4.--如果是通过文件上传的服务器,在服务器上下载一个 需要格式化
1,yum install dos2unix -y
2,dos2unix 文件名.sh
5.增加定时任务
crontab -uroot -e
1 0 * * * 脚本路径/脚本名称.sh 每天凌晨12点01分执行
6.重启服务 service crond restart