mysql自动备份数据库脚本

上一篇 / 下一篇  2020-03-24 19:40:33 / 个人分类:mysql

一、mysql自动备份任务脚本
#!/bin/bash

#数据库信息
begin_ip=192.168.0.55
port=3306
user=root
begin_password=123456
#备份文件夹信息
BACK_DIR=/data/mysql_data_exp

#获取15天前日期
date_15ago=`date -d '15 day ago' +%Y%m%d`

#删除15天前的备份数据
rm -rf /data/mysql_data_exp/${date_15ago}**

#获取今天日期
date_today=`date -d '0 day ago' +%Y%m%d%H%M%S`
date_today1=${date_today}

#创建备份文件夹/文件名,并进入
[ -d ${BACK_DIR} ] | mkdir -p ${BACK_DIR}/${date_today1}
chmod 777 ${BACK_DIR}/${date_today1}


#导出所有数据库

mysqldump -h${begin_ip} -P${port} -u${user} -p${begin_password} --all-databases | gzip > ${BACK_DIR}/${date_today1}/${begin_ip}_all_databases_${date_today1}.sql.gz


#查询所有库
DB_NAMES=`mysql -h${begin_ip} -P${port} -u${user} -p${begin_password} -A -e "show databases;" | egrep -v "Database|schema"`
echo ${DB_NAMES}


#分开导出所有数据库
for DB_NAME in ${DB_NAMES}; do
sleep 1
    mysqldump -h${begin_ip} -P${port} -u${user} -p${begin_password} ${DB_NAME} | gzip > ${BACK_DIR}/${date_today1}/${begin_ip}_${DB_NAME}_${date_today1}.sql.gz

[ $? == 0 ] && echo "${date_today1}:mysqldump ${DB_NAME} success." >>${BACK_DIR}/mysqldump_backup.log || echo "${date_today1}:mysqldump ${DB_NAME} err,please check." >>${BACK_DIR}/mysqldump_backup.log
done
echo "==========All databases backups ver==========" >>${BACK_DIR}/mysqldump_backup.log




二、启动linux定时任务
#配置每天19点35分启动定时任务
[root@OCP test]#crontab -e
35 19 * * *  sh /data/mysql_data_exp/bak.sh  >/data/mysql_data_exp/mysqldump_backup.log


TAG:

 

评分:0

我来说两句

Open Toolbar