首页 > 编程知识 正文

企业微信实现mes,linux脚本实现计算器

时间:2023-05-05 05:58:50 阅读:218109 作者:2847

脚本实现,企业微信报警

企业微信中分为添加人告警,以及机器人告警。我觉得这边比较好的是用机器人告警来实现,只要将别人拉进群里面就可以所有人都可以看到报警信息。

废话不多说 脚本走起 脚本内容是东拼西凑的,加上自己的改动

#!/碧蓝的哑铃/bash#机器人webhook的地址 企业微信添加机器人的时候会给个地址Url='https://qyapi.weixin.qq.com/cgi-碧蓝的哑铃/webhook/send?key=2231cc25d-f212327-4212331-afdsd27-223123fbcae'#是否走代理,内网机器。PROXY='192.168.10.233:3128'proxylock=no #yes是使用代理#全局变量time=`date +"%Y-%m-%d %H:%M:%S"`HOST=`ifconfig eth0 | grep inet | grep broadcast | awk '{print $2}'`MEMrate=80 #运行内存的限制CPUrate=80 #运行PCU的限制txrate=100 #发送的流量限制rxrate=100 #接收的流量限制memrate=90 #df-h中的磁盘大小告警限制#内存监控部分MEM=`free -m |grep Mem |awk '{print $3/$2*100}'|awk -F '.' '{print $1}'` if [ $MEM -ge $MEMrate ];then if [ $proxylock = yes ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前运行内存占用率为:'"$MEM%"'"} }' -x $PROXY> /dev/null elif [ $proxylock = no ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前运行内存占用率为:'"$MEM%"'"} }' > /dev/null fi fi#CPU监控部分CPUuse=`top -n1 | fgrep "Cpu(s)" | tail -1 | awk -F ' ' '{ print $2 }'|awk -F '.' '{print $1}'` if [[ $CPUuse -ge $CPUrate ]];then if [ $proxylock = yes ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前CPU占用率为:'"$CPUuse"'"} }' -x $PROXY > /dev/null elif [ $proxylock = no ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前CPU占用率为:'"$CPUuse"'"} }' > /dev/null fi fi#获取当前时刻网口接收与发送的流量RXpre=$(cat /proc/net/dev | grep eth0 | tr : " " | awk '{print $2}')TXpre=$(cat /proc/net/dev | grep eth0 | tr : " " | awk '{print $10}')#获取1秒后网口接收与发送的流量sleep 2RXnext=$(cat /proc/net/dev | grep eth0 | tr : " " | awk '{print $2}')TXnext=$(cat /proc/net/dev | grep eth0 | tr : " " | awk '{print $10}')#获取这1秒钟实际的进出流量RX=$((${RXnext}-${RXpre}))TX=$((${TXnext}-${TXpre})) if [[ $RX -lt 1024 ]];then RX="${RX}B/s" elif [[ $RX -gt 1048576 ]];then RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}') else RX=$(echo $RX | awk '{print $1/1024 "KB/s"}') fi#判断发送流量如果大于MB数量级则显示MB单位,否则显示KB数量级 if [[ $TX -lt 1024 ]];then TX="${TX}B/s" elif [[ $TX -gt 1048576 ]];then TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}') else TX=$(echo $TX | awk '{print $1/1024 "KB/s"}') fitxnumber=`echo $TX >/tmp/TXrate.tmp | cat /tmp/TXrate.tmp|grep -v grep |grep MB|awk -F '.' '{print $1}'`rxnumber=`echo $RX >/tmp/RXrate.tmp | cat /tmp/RXrate.tmp|grep -v grep |grep MB|awk -F '.' '{print $1}'` if [[ $txnumber -ge $txrate ]];then if [ $proxylock = yes ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前发送流量为:'"$TX"'"} }' -x $PROXY > /dev/null elif [ $proxylock = no ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前发送流量为:'"$TX"'"} }' > /dev/null fi fi if [[ $rxnumber -ge $rxrate ]];then if [ $proxylock = yes ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前接收流量为:'"$RX"'"} }' -x $PROXY > /dev/null elif [ $proxylock = no ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前接收流量为:'"$RX"'"} }' > /dev/null fi fi#检测端口服务cat /monitor/ip.list|while read linedo /usr/碧蓝的哑铃/nc -w 1 -z $line > /dev/null 2>&1 if [ $? -eq 0 ] then echo telnet $line ok >/dev/null sleep 1 else if [ $proxylock = yes ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前'"$line"' 服务端口down掉,请上服务器上查看原因"} }' -x $PROXY > /dev/null elif [ $proxylock = no ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'苏州联通dmzn当前'"$line"' 服务端口down掉,请上服务器上查看原因"} }' > /dev/null fi fidone#检测服务器中df -h中磁盘的空间 for i in `df -P | awk '{print $5}' | sed 's/%//g'` do if [[ $i -gt $memrate ]];then if [ $proxylock = yes ];then curl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前服务器中'"`df -h | grep -v grep | grep $i | awk '{print $NF}'`"'超过'"$memrate"'%,请上服务器查看原因"} }' -x $PROXY > /dev/null elif [ $proxylock = no ];thencurl $Url -H 'Content-Type: application/json' -d '{ "msgtype": "text","text": { "content": "'"$time"'n'"$HOST"'n当前服务器中'"`df -h | grep -v grep | grep $i | awk '{print $NF}'`"'超过'"$memrate"'%,请上服务器查看原因"} }' > /dev/null fi fi done

链接: [https://blog.51cto.com/showerlee/1363715]
链接: [https://blog.csdn.net/weixin_42518334/article/details/116625770]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。