定时计划执行脚本:mysqlbat.sh
docker exec -i `docker ps|grep mysql| awk '{print $1}'` /mysql/mysqlbackup.sh(挂载到容器内后的路径)
#docker exec不能跟-it后台运行,只能跟-i进入容器执行后面的脚本
挂载脚本mysqlbackup.sh到容器/mysql/下
mysqlbackup.sh
#!bin/bash
dt_now=`date +%Y%m%d%H`
cd /mysql/bak
mkdir $dt_now
find /mysql/bak/ -mtime +21 -exec rm -rf {} \;(删除超过21天的备份)
echo "start backup mysql" #(备份四个数据库)
mysqldump -uroot -pjetsen123 zhyf_jeesite > /mysql/bak/$dt_now/zhyf_jeesite.sql
mysqldump -uroot -pjetsen123 zhyf_course > /mysql/bak/$dt_now/zhyf_course.sql
mysqldump -uroot -pjetsen123 zhyf_jeuc > /mysql/bak/$dt_now/zhyf_jeuc.sql
mysqldump -uroot -pjetsen123 zhyf_resource > /mysql/bak/$dt_now/zhyf_resource.sql
mysqlbackup.sh(后期优化自动识别备份后期增加的数据库)
#!bin/bash
dt_now=`date +%Y%m%d%H`
PASSWD="jetsen123"
cd /mysql/bak
mkdir $dt_now
find /mysql/bak/ -mtime +21 -exec rm -rf {} \;
echo "start backup mysql"
for i in `mysql -uroot -p$PASSWD -e "show databases"|grep -E "information_schema|mysql|performance_schema|sys|Data" -v `;do mysqldump -uroot -p$PASSWD $i > /mysql/bak/$dt_now/$i.sql;done
定时计划:两种方法二选一
1、crontab -e进入编辑添加
0 1 * * * root /srv/jetsen/mysql/mysqlbat.sh (每天凌晨一点执行)
2、编辑vim /etc/crontab文件最后添加
0 1 * * * root /srv/jetsen/mysql/mysqlbat.sh
阅读(3259) | 评论(0) | 转发(0) |