mysql5.7 数据库自动备份脚本

新建备份目录

mkdir /backups

mkdir /backups/mysql

新建存放备份脚本目录

mkdir /data/scripts

备份脚本:

mysql_backup.sh

===============================================================

#!/bin/bash

HOST=localhost

USER=root

PORT=  #端口号

PASSWD=  #数据库密码

DATE=`date +%Y-%m-%d`

#DATE_NOW=`date +%Y-%m-%d.%H%M`

DATE_NOW=`date +%Y-%m-%d`

OLDDATE=`date +%Y-%m-%d -d "60 days ago"`  

BACKUPDIR=/backups/mysql   #备份目录

mkdir -p ${BACKUPDIR}/${DATE}

cd ${BACKUPDIR}/${DATE}

/usr/local/mysql/bin/mysqldump -h${HOST} -P${PORT} -u${USER} -p${PASSWD} -R -E --single-transaction --databases DB_CFG > db_cfg_${DATE_NOW}.sql       #数据库名

/usr/local/mysql/bin/mysqldump -h${HOST} -P${PORT} -u${USER} -p${PASSWD} -R -E --single-transaction --databases DB_PROJECTS > db_projects_${DATE_NOW}.sql  #数据库名

  

tar zcvf db_cfg_${DATE_NOW}.sql.tar.gz db_cfg_${DATE_NOW}.sql

tar zcvf db_projects_${DATE_NOW}.sql.tar.gz db_projects_${DATE_NOW}.sql

rm -rf db_cfg_${DATE_NOW}.sql

rm -rf db_projects_${DATE_NOW}.sql

cd ${BACKUPDIR}

rm -rf ${OLDDATE}

=============================================================

crontab -e 打开任务

修改为以下数据

0 2 * * * sh /data/scripts/mysql_backup.sh

保存:wq

crontab -l 显示所以任务

示例:

0 2 * * * sh /data/scripts/mysql_backup.sh

第二天查看是否正常备份,当容量过大,可适当手动清理备份文件

查看是否备份成功:

 

如第二天没有备份成功,则手动执行备份命令:

sh /data/scripts/mysql_backup.sh

查看备份目录下备份文件

原文地址:https://www.cnblogs.com/Nanaya/p/11926664.html