shell实现查询数据库发送邮件报警

版权声明:欢迎分享转载 我可能会失败,但我不会一直失败 https://blog.csdn.net/u012637358/article/details/89357370

功能描述

查询数据库表中记录数,看是否有昨日增量数据,没有说明任务计算失败,则发送邮件进行通知~

完整脚本文件

sendmaildb.sh

#!/bin/bash
#参数个数校验
if [ $# -lt 1 ]

then

        echo "参数错误~ 参数:输入执行日期YYYYMMDD";

        exit;

fi

#创建日志文件

LOG_FILE_NAME="/opt/monitor/指标任务-"$1".log"

#日志文件不存在
if [ ! -e "$LOG_FILE_NAME" ]

then

     touch $LOG_FILE_NAME;

fi

LOG=$(date "+%Y-%m-%d %H:%M:%S");

echo $LOG
#当前时间

current_time=$(date +'%Y%m%d');

echo $current_time

#查询开始时间

if  [ -n $1 ]

then

start_time=$1

else

start_time=$(date -d "1 days ago" +%Y%m%d)

fi

echo $start_time;


query_total_num_sql="select count(1) from kg_SectorStat  where  STAT_DATE>='${start_time}' and STAT_DATE<='${current_time}'"

total_num=$(/usr/bin/mysql -h192.168.0.189 -P3306 -uroot -p898  kongguan -s -e "${query_total_num_sql}");

echo ${total_num};

#总数小于1
if [ 0 -ge ${total_num} ]

then

#记录结束时间
end=`date +%Y-%m-%d_%H:%M:%S`

echo -e "${start_time}任务运行失败:$end\n" >> $LOG_FILE_NAME

#发送通知邮件
echo -e "${start_time}日任务运行失败!\n" | /bin/mail -s "${current_time}日发电量指标任务通知" [email protected]

exit;

fi

定时执行

./sendmaildb.sh $(date -d "1 days ago" +%Y%m%d)  #昨天日期

每晚22点00分执行发送邮件份脚本

0 22 */1 * *  /opt/spark/sendmaildb.sh $(date -d "1 days ago" +%Y%m%d)

在这里插入图片描述

Linux
*    *    *    *    *    *
-    -    -    -    -    -
|    |    |    |    |    |
|    |    |    |    |    + year [optional]
|    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7)
|    |    |    +---------- month (1 - 12)
|    |    +--------------- day of month (1 - 31)
|    +-------------------- hour (0 - 23)
+------------------------- min (0 - 59)

在线工具连接:https://tool.lu/crontab

猜你喜欢

转载自blog.csdn.net/u012637358/article/details/89357370