版权声明:欢迎分享转载 我可能会失败,但我不会一直失败 https://blog.csdn.net/u012637358/article/details/89357370
功能描述
查询数据库表中记录数,看是否有昨日增量数据,没有说明任务计算失败,则发送邮件进行通知~
完整脚本文件
#!/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