1. 创建脚本 mysql_backup.sh
#!/bin/bash# 保留90天数据,# mysql-5.7 为安装mysql的dockerdocker exec -i mysql-5.7 bash<<'EOF'# 判断目录是不是已经存在,如果不存在则创建if [ ! -d "/backups/mysql" ]; thenmkdir -p /backups/mysqlfi# backups 为数据库的名称mysqldump -uroot -pwoshimima platform_v3.0 > /backups/mysql/$(date +%Y%m%d%H)_platform_v3.sql#删除超过1天的数据rm -f /backups/mysql/$(date -d -1day +%Y%m%d%H)_platform_v3.sqlexitEOF# 判断目录是不是已经存在,如果不存在则创建if [ ! -d "/backups/mysql" ]; thenmkdir -p /backups/mysqlfi# 将docker中的备份的数据拷贝到宿主机上。docker cp mysql-5.7:/backups/mysql/$(date +%Y%m%d%H)_platform_v3.sql /backups/mysql# 压缩文件gzip /backups/mysql/$(date +%Y%m%d%H)_platform_v3.sql#删除超过90天的数据rm -f /backups/mysql/$(date -d -90day +%Y%m%d%H)_platform_v3.sql.gz
2. 定时执行脚本
将脚本上传到 /backups/script/ 下,并赋予权限
$ chmod 777 /backups/script/mysql_backup.sh
# 显示定时任务
$ crontab -l
# 编辑定时任务
$ crontab –e
$ vim /var/spool/cron/root
# 追加
$ 0 9,14,20 * * * /backups/script/mysql_backup.sh > /backups/script/mysql_backup.log 2>&1 &
其中/backups/script/mysql_backup.log是本次定时任务的日志。
