• weixin报警脚本


    #!/bin/bash
    ### script name weixin.sh
    ### send messages from weixin for zabbix monitor
    ### jack
    ### 2016-7-18
    ### usage:   curl -s -G url 获取acessToken
    ### curl --data url 传送凭证调用企业号接口
    ### zabbix 会传送三个参数给脚本,$1 是消息接收账号,$2 报警标题, $3 报警内容
    
    CropID='111'
    Secret='3333'
    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
    Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F '"' '{print $4}')
    now_time=$(date -d now)
    now_timestamp=$(date -d "${now_time}" +%s)
    options=$[2*60*60]
    token_file='/tmp/token_file.txt'
    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
    LOG_FILE='/tmp/weixin_log.txt'
    
    function logMessageToFile(){
      echo "[ $1 ] - ["$(date "+%Y-%m-%d %H:%M:%S")"] - $2" >> $LOG_FILE
    }
    
    function create_tokenfile(){
    echo "${now_time} > ${Gtoken}"  > ${token_file}
    }
    
    function get_Gtoken(){
    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
    Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F '"' '{print $4}')
    }
    
    function check_token(){
            if [ -f "${token_file}" ]; then
                    file_token=$(awk -F '>' '{print $2}' ${token_file})
                    file_time=$(awk -F '>' '{print $1}'  ${token_file})
                    file_timestamp=$(date -d "${file_time}" +%s)
                    time_difference=$[${now_timestamp}-${file_timestamp}]
                    if [ "${time_difference}" -gt "${options}" ]; then
                            get_Gtoken
                            create_tokenfile
                            logMessageToFile "INFO" "上次token是: ${file_token},到现在过了${time_difference} 秒, 新的token是:${Gtoken}"
                    else
                            logMessageToFile "INFO"  "not need update the token, use old token ${file_token}  到现在过了${time_difference} 秒"
                            Gtoken=$(echo ${file_token})
                    fi
            else
                    get_Gtoken
                    logMessageToFile "INFO" "the token_file : ${token_file} not exsits ,will create it . 到现在过了${time_difference} 秒"
                    create_tokenfile
            fi
    
    }
    
    
    function body(){
            local int AppID=1                  # 企业号中的应用ID
            local UserID="@all"                  # 部门成员id,zabbix中定义的微信接受者
            local PartyID=2                   # 部门id,定义了范围,组内成员都可接收到消息
            local Msg=$(echo "$@" | cut -d " " -f3-) # 过滤出zabbix中传递的第三个参数
            printf '{
    '
            printf '	"touser":"'"$UserID""",
    "
            printf '	"toparty":"'"$PartyID""",
    "
            printf '	"msgtype": "text",'"
    "
            printf '	"agentid":'$AppID\,"
    "
            printf '	"text":{
    '
            printf '		"content":"'"$Msg""
            printf '
    	},
    '
            printf '	"safe":"0"
    '
            printf '}
    '
    }
    
    check_token
    /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
    在尝试学习新的语言之前先理解这门语言的设计原理能够让你在探索这门新语言时保持一个清醒而且开发的状态。
  • 相关阅读:
    八数码问题及其扩展
    java注释
    康托展开和逆康托展开
    模线性方程组
    欧拉函数
    扩展欧几里德
    商城项目实战 | 2.2 Android 仿京东商城——自定义 Toolbar (二)
    商城项目实战 | 2.1 Android 仿京东商城——自定义 Toolbar (一)
    商城项目实战 | 1.1 Android 仿京东商城底部布局的选择效果 —— Selector 选择器的实现
    Android使用Path实现仿最新淘宝轮播广告底部弧形有锯齿的问题以及解决办法
  • 原文地址:https://www.cnblogs.com/jackchen001/p/6625864.html
Copyright © 2020-2023  润新知