Docker安装mysql自动备份数据库

1.编写shell脚本:vi mysql_auto_backup.sh

注意:一定要写绝对路径,方便后续在任何目录调用

 #!/bin/bash
sysdate=$(date +"%Y-%m-%d%H%M%S")

docker exec -it mymysql mysqldump -uroot -p222233 guns > /data/backup/mysql/db/gun_backup_${sysdate}.sql

gzip -c /data/backup/mysql/db/gun_backup_${sysdate}.sql > /data/backup/mysql/db/zip/gun_backup_${sysdate}.sql.gz

#备份到其他服务器

scp /data/backup/mysql/db/zip/gun_backup_${sysdate}.sql.gz [email protected]:/data/backup/mysql/zip/

scp /data/backup/mysql/db/gun_backup_${sysdate}.sql [email protected]:/data/backup/mysql/
 

2.使用crontabs来进行定时任务的执行(如果没有安装crond就先按照好)

service crond start //启动服务 
service crond stop //关闭服务 
service crond restart //重启服务 
service crond reload //重新载入配置

查看crontab服务状态:service crond status 
手动启动crontab服务:service crond start 

3.编辑crond配置,每分钟执行下脚本:vi /etc/crontab  

 注: crond具体的使用方式,可以自行百度/google

脚本内容如下:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed 
 */1 *  *  *  * root /data/backup/mysql/mysqlBackup_auto.sh 


4.wq 保存退出,脚本自动执行

你可能感兴趣的:(Linux,docker,mysql)