因为我是内网环境,我做了一个周,都是后台测试OK ./weixin.sh 1 1 test 可以收到
但是测试机关机测试,收不到。以下问题点
动作
把用户选成 weixin用户
最重要的
[root@localhost ~]# cat /usr/lib/zabbix/alertscripts/weixin.sh
#!/bin/bash
###SCRIPT_NAME:wechat.sh###
###send message from weixin for zabbix monitor###
http_proxy=ip:808
https_proxy=ip:808
export http_proxy
export https_proxy 当时就这写错了,一直测试没问题,实操确收不到。
CropID='ww**********'
Secret='Ss***********************************'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int AppID=1000002
local UserID=$1
local PartyID=2
local Msg=$(echo "$@" | cut -d" " -f3-)
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'" $AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL##