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 }
---------------------------------------采遍所有的坑,让别人无坑可踩---------------------------------------