shell脚本编写--钉钉预警通知

好几天发表文章了,水一把年前的预警脚本。

#!/bin/bash
# -----------------------------------------------------------------
# -------- 创建日期:2022-01                               --------
# -------- 作者:ywjia                                     --------
# -------- 邮箱:duxingren201955@163.com                   --------
# -----------------------------------------------------------------
function Print_info_log() {
    echo -e "\e[1;35m INFO:$(date "+%Y-%m-%d %H:%M:%S") \e[0m $1." | tee -a /install_all.log
}
#钉钉消息token
dd_token='https://oapi.dingtalk.com/robot/send?access_token=******************************************************'

#消息通知
function SendMsgToDingding() {
    DT=$(date "+%Y-%m-%d %H:%M:%S")
    curl $dd_token -H 'Content-Type: application/json' -d "
    {
        'msgtype': 'text',
        'text': {
                     'content': '
    标题:  ERROR---线上环境预警
    时间:   $DT
    告警信息:  [${errcode}]
    请马上处理!!!'            
      },
        'at': {
            'atMobiles':[
                "181****8836"
            ],
            'isAtAll': false
        }
    }"
}

errcount=$(awk '/ERROR/{print $0}' /opt/checklog | wc -l)
errcode="$(awk '/ERROR/{print $0}' /opt/checklog)"
[ $errcount -ne 0 ] && SendMsgToDingding || Print_info_log "checklog 运行正常"

逻辑大家就不要在意了。

主体形式就是这样。把提示词改一改就行。

效果

 

 

注意;获取钉钉的token方式

 

 

 

 

当然除了文本,还有其他的通知方式

send_dd(){
messageUrl=$1
curl -i -X POST "$dd_token" \
-H 'Content-type':'application/json' \
-d '
{
  "msgtype": "link",
     "link": {
        "text":"hbase监控--jmeter脚本运行结果展示", 
        "title": "时间:'"${DT}"' 项目:'"${project}"' 环境:'"${envtype}"'", 
        "picUrl": "xxxx/pic/jmeter.png", 
        "messageUrl": "'"${messageUrl}"'"
        }
}'
if [ $? -ne 0 ];then
    print_log "发送消息失败"
    exit 1
fi
}

 

 

---------------------------------------采遍所有的坑,让别人无坑可踩---------------------------------------