通过出发shell脚本来实现企业微信报警

shell实现企业微信报警

在日常工作中,我们有些时候需要第一时间知道跑在线上的应用有没有挂掉。之前一直在使用的是邮件报警。可是相比较目前市面上其他的应用,比如QQ和微信,我们每天点开看邮件的次数太少了,导致有些时候发送的报警邮件,直接就石沉大海了,所以我开始找新的报警办法。
我第一个想到的就是微信,这也是我这次标题的又来,下面就是我利用企业微信实现报警的方法。

申请企业微信

# 企业微信申请的网址
# 具体申请流程,我就不多说了
https://work.weixin.qq.com/wework_admin/register_wx

Shell脚本内容

话不多说,先上硬菜。下面就是我实现报警的脚本,具体每一段是什么意思,我就懒得贴了,你们可以直接扣我,或者发我邮件,我会解答

#!/bin/bash
expireTime=7200
## TokenFile 企业微信token文件,存放位置可以自定义,我选的是当前位置
TokenFile="db.json"
## 以下5行,登陆自己的企业微信拿到
corpid=XXX
corpsecret=XXX
touser="XXX"
toparty="XXX"
agentid="XXX"
## 发送报文
content="自定义"
## 针对
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\"}}"
#msg_body="{\"touser2\":\"$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
  • 另外补充一句,不要太频繁的去获取token,大概两小时左右获取一次就可以了

脚本讲解

  • 脚本有三个部分
    • 变量设置
    • token获取
    • 信息发送
  • 变量设置就是定义一些,在获取token,或者是发送短信时候需要的参数
  • 脚本在发送信息的前,需要先访问https://qyapi.weixin.qq.com,去获取token,拿着这个token才能发送信息。token有一个有效期,大概是两个小时左右,具体多长时间,需要各位自己去测试了。
  • 信息发送就很简单了,一条命令就可以
  • 这个脚本其实是可以拆开了用。获取token和发送信息完全可以隔离开使用,一台机器获取token,企业各个节点调用同一个token,再发送消息,完美!!!

暂时就写这些吧,欢迎各位指出不足 QQ:925124317

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值