一、shell定时备份数据库任务通用脚本
目标:根据定时任务启动脚本,执行数据库备份任务,按照日期进行每日备份,如已经备份则脚本停止,备份任务完成后将结果发送邮件提醒
1.执行数据库备份任务,按照日期进行每日备份,如已经备份则脚本停止
#!/bin/bash
#auto backup mysql db
#by xiamiGG 2019-11-15
#define bacakup path
BAK_DIR=/data/backup/`date +%Y%m%d` #备份路径,备份名称按照年月日编排
MYSQLDB=example #备份数据库文件的名称
MYSQLUSR=backup #数据库用户名
MYSQLPW=123456 #数据库密码
MYSQLCMD=/usr/bin/mysqldump #mysqldump命令路径
#必须使用root管理员账户执行脚本,否则退出脚本
if [ $UID -ne 0 ];then
echo "must to be use root for exec shell."
exit
fi
#判断目录是否存在,如果已经存在则提示备份已经完成,停止脚本并退出;如果没有进行备份则按日期创建目录
if [ ! -d $BAK_DIR ];then
mkdir -p $BAK_DIR
echo -e "\033[32mThe $BAK_DIR Create successfully!\033[0m"
else
echo -e "\033[32mThis is $BAK_DIR is exists...\033[0m"
echo -e "\033[32mbackup already ,Please check it.\033[0m"
exit
fi
#Mysq备份命令
$MYSQLCMD -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB > $BAK_DIR/$MYSQLDB.sql
#检查脚本执行结果,执行成功提示successfully,执行失败提示failed
if [ $? -eq 0 ];then
echo -e "\033[32mThe Mysql Backup $MYSQLDB successfully!\033[0m"
else
echo -e "\033[32mThe Mysql Backup $MYSQLDB Failed,Please check.\033[0m"
fi
2.根据定时任务启动脚本,并记录定时任务日志
crontab -e 添加定时任务 crontab -l 检查定时任务列表
#每日凌晨12点执行数据库备份脚本
0 0 * * * /bin/bash /auto_backup_mysql.sh >>/tmp/mysql_bak_.log 2>&1
3.备份任务完成后将结果发送邮件提醒
PASS(exchange配置完毕后更新)