通過shell指令碼和企業微信實現報警功能(完整版)
最終效果如圖(GIF太大了 就截了兩張圖)
#!/bin/sh
expireTime=7200
dbFile="db.json"
corpid=xxx
corpsecret=xxx
touser="xxx"
toparty="xxx"
agentid="xxx"
content="伺服器快崩了,你還在這裡吟詩作對?"
# s 為秒,m 為 分鐘,h 為小時,d 為日數
interval=1s
## 傳送報警資訊
sendMsg(){
if [ ! -f "$dbFile" ];then
touch "$dbFile"
fi
# 獲取token
req_time=`jq '.req_time' $dbFile`
current_time=$(date +%s)
refresh=false
if [ ! -n "$req_time" ];then
refresh=true
else
if [ $((current_time-req_time)) -gt $expireTime ];then
refresh=true
fi
fi
if $refresh ;then
req_access_token_url=https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid\&corpsecret=$corpsecret
access_res=$(curl -s -G $req_access_token_url | jq -r '.access_token')
## 儲存檔案
echo "" > $dbFile
echo -e "{" > $dbFile
echo -e "\t\"access_token\":\"$access_res\"," >> $dbFile
echo -e "\t\"req_time\":$current_time" >> $dbFile
echo -e "}" >> $dbFile
echo ">>>重新整理Token成功<<<"
fi
## 傳送訊息
msg_body="{\"touser\":\"$touser\",\"toparty\":\"$toparty\",\"msgtype\":\"text\",\"agentid\":$agentid,\"text\":{\"content\":\"$content\"}}"
access_token=`jq -r '.access_token' $dbFile`
req_send_msg_url=https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$access_token
req_msg=$(curl -s -H "Content-Type: application/json" -X POST -d $msg_body $req_send_msg_url | jq -r '.errmsg')
echo "觸發報警傳送動作,返回資訊為:" $req_msg
}
loopMonitor(){
echo 'loop'
flag=`uptime | awk '{printf "%.2f\n", $11 "\n"}'`
# 0.7 這個閾值可以視情況而定,如cpu核數為n,則可以設定為0.7 * n 具體視情況而定
c=$(echo "$flag > 0.7" | bc)
echo ">>>>>>>>>>>>>>>>>>`date`<<<<<<<<<<<<<<<<<<"
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'
uptime | awk '{printf "CPU Load: %.2f\n", $11 "\n"}'
echo ">>>>>>>>>>>>>>>>>>end<<<<<<<<<<<<<<<<<<"
if [ $c -eq 1 ];then
sendMsg
fi
}
while true; do
loopMonitor
sleep $interval
done
讓CPU達到100%的指令碼
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
歡迎提PR
CSDN:http://blog.csdn.net/qqhjqs?viewmode=list
部落格:http://vector4wang.tk/
簡書:https://www.jianshu.com/u/223a1314e818
Github:https://github.com/vector4wang
Gitee:https://gitee.com/backwxc
相關文章
- 通過企業微信企業標籤功能更“懂”客戶
- 案例:通過shell指令碼實現mysql資料備份與清理指令碼MySql
- 實戰模擬│企業微信機器人實時報錯預警機器人
- shell指令碼企業巡檢指令碼
- [ Shell ] 通過 Shell 指令碼匯出 CDL 網表指令碼
- 企業微信JS-SDK實現會話聊天功能JS會話
- 通過shell指令碼防止埠掃描指令碼
- 白碼企業微信CRM中的“todo日程表”功能如何實現?
- [ Shell ] 通過 Shell 指令碼匯出 GDSII/OASIS 檔案指令碼
- 通過shell指令碼 批量新增使用者指令碼
- 美妝行業怎麼樣通過企業微信+scrm實現私域快速增長?行業
- 【Linux】【Shell】主控指令碼實現Linux指令碼
- shell指令碼企業實戰系列-nginx原始碼包安裝指令碼Nginx原始碼
- 通過shell指令碼批量操作mysql資料庫指令碼MySql資料庫
- 實現微信分享功能
- shell指令碼實現DNS正向解析指令碼DNS
- Android通過輔助功能實現搶微信紅包原理簡單介紹Android
- 通過shell指令碼檢測MySQL服務資訊指令碼MySql
- 如何通過微信開發實現財富自由
- 如何使用企業微信群直播功能
- 企業微信hook 最新版 、企微輸入驗證碼,二次掃碼方案、發名片收訊息功能,企業微信hook原始碼Hook原始碼
- zabbix報警指令碼(wechat,email)指令碼AI
- Java指令碼實現在微信聊天框發訊息Java指令碼
- shell指令碼報錯:[: missing `]‘指令碼
- linux透過shell指令碼實現ssh互動式自動化Linux指令碼
- Linux通過Shell指令碼命令修改密碼不需要互動Linux指令碼密碼
- 企業微信工作臺新增功能按鈕
- 微信小程式 遮罩功能實現微信小程式遮罩
- shell指令碼實現---Zabbix5.0快速部署指令碼
- 企業微信整合openai實現ChatGPT機器人OpenAIChatGPT機器人
- 通過 shell 指令碼完成 GitLab11.9.11 的一鍵安裝指令碼Gitlab
- windows AD域控密碼過期企業微信推送告警Windows密碼
- Shell指令碼最佳實踐指令碼
- 【python 監控報警】python自動發微信監控報警Python
- 微信小程式實現換膚功能微信小程式
- [shell]shell指令碼實現每天自動抽取資料插入hive表指令碼Hive
- 使用企業微信客戶群功能高效服務企業客戶
- ASP.NET實現企業微信接入應用實現身份認證ASP.NET