docker知识自行去查询相关资料,这边只记录实际操作
1、修改docker的my.conf 增加以下配置
[mysqldump]
host=localhost
port=3306
user=root
password=dUSU9w6y3kUXgJrlaFmW
2、编写backup.sh脚本我这边的数据库有多个 自行根据需要自行修改相关备份脚本
#!/bin/bash mysql_database1="cloud" mysql_database2="cloud-config" mysql_database3="cloud-order" mysql_database4="cloud-product" mysql_database5="cloud-quartz" mysql_database6="cloud-third" mysql_database7="cloud-user" # 备份文件存放地址(根据实际情况填写) backup_location=/data2/backup # 判断目录是不是已经存在,如果不存在则创建 if [ ! -d "$backup_location" ]; then mkdir $backup_location mkdir $backup_location/$mysql_database1 mkdir $backup_location/$mysql_database2 mkdir $backup_location/$mysql_database3 mkdir $backup_location/$mysql_database4 mkdir $backup_location/$mysql_database5 mkdir $backup_location/$mysql_database6 mkdir $backup_location/$mysql_database7 fi # 是否删除过期数据 expire_backup_delete="ON" expire_days=2 backup_time=`date +%Y%m%d%H%M` docker exec -i docker-mysql mysqldump -B $mysql_database1 > $backup_location/$mysql_database1/$mysql_database1-$backup_time.sql docker exec -i docker-mysql mysqldump -B $mysql_database2 > $backup_location/$mysql_database2/$mysql_database2-$backup_time.sql docker exec -i docker-mysql mysqldump -B $mysql_database3 > $backup_location/$mysql_database3/$mysql_database3-$backup_time.sql docker exec -i docker-mysql mysqldump -B $mysql_database4 > $backup_location/$mysql_database4/$mysql_database4-$backup_time.sql docker exec -i docker-mysql mysqldump -B $mysql_database5 > $backup_location/$mysql_database5/$mysql_database5-$backup_time.sql docker exec -i docker-mysql mysqldump -B $mysql_database6 > $backup_location/$mysql_database6/$mysql_database6-$backup_time.sql docker exec -i docker-mysql mysqldump -B $mysql_database7 > $backup_location/$mysql_database7/$mysql_database7-$backup_time.sql # 删除过期数据 if [ "$expire_backup_delete" == "ON" -a "$backup_location" != "" ];then `find $backup_location/$mysql_database1/ -type f -mtime +$expire_days | xargs rm -rf` `find $backup_location/$mysql_database2/ -type f -mtime +$expire_days | xargs rm -rf` `find $backup_location/$mysql_database3/ -type f -mtime +$expire_days | xargs rm -rf` `find $backup_location/$mysql_database4/ -type f -mtime +$expire_days | xargs rm -rf` `find $backup_location/$mysql_database5/ -type f -mtime +$expire_days | xargs rm -rf` `find $backup_location/$mysql_database6/ -type f -mtime +$expire_days | xargs rm -rf` `find $backup_location/$mysql_database7/ -type f -mtime +$expire_days | xargs rm -rf` echo "Expired backup data delete complete!" fi
3、crontab相关命令,详细其余命令自行查询
查看定时:crontab -l
编写定时:crontab -e
4、编写crontab命令
#crontab正则在线测试网站:https://www.matools.com/crontab
#测试命令执行情况每分钟执行一次
*/1 * * * * sh /你们的路径/backup.sh#实际命令每天0点执行
0 0 * * * sh /你们的路径/backup.sh