Shell学习记录(持续更新)

大兔子大兔子 提交于 2019-12-04 14:11:24

一、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配置完毕后更新)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!