新建备份目录
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
查看备份目录下备份文件