Shell脚本一键推送到钉钉告警并@指定人

 1. Shell脚本

  cat    /opt/monitor/device/device.sh
#!/bin/bash

# 域名列表文件绝对路径

text_file="/opt/monitor/device/device.txt"

#PG数据库密码环境变量
export PGPASSWORD='8888888888888888'


#结果为0代表正常设备,非0代表有异常设备
sql_cmd="select count(1) from aio_brm.device where (org_id = 99999999999999999 or org_id = 988888888888888881) and del_flag = '0' and status = '0'"


psql -U database_user -d  database_name  -p 88888 -h sh-postgres-8888888888.sql.tencentcdb.com   -c  "$sql_cmd" > $text_file



#钉钉webhook
prod_webhook_url="https://oapi.dingtalk.com/robot/send?access_token=9999999999999999999999999999999999999"
test_webhook_url="https://oapi.dingtalk.com/robot/send?access_token=9999999999999999999888888888888888888"


MESSAGE=$(cat "$text_file")



# 要@的用户手机号(多个用户用逗号分隔)
AT_MOBILES="13088888888,13099999999"

#JSON_DATA=$(cat <<EOF { "msgtype": "text", "text": { "content": "$MESSAGE" } } EOF )


#curl -s -X POST -H 'Content-Type: application/json' -d "$JSON_DATA" "$webhook_url"

#钉钉推送告警信息
prod_dingding_push(){
      curl      -H "Content-Type: application/json" \
                -d '{
                    "msgtype": "text",
                    "text": {
                        "content": "告警内容:【生产环境告警,请及时处理】\n执行语句:【select count(1) from aio_brm.device where (org_id = 99999999999999999 or org_id = 988888888888888881) and del_flag = '0' and status = '0'】 @19099999999@180888888888"
                    },
                    'at': {
                         'atMobiles': ['19099999999','180888888888'],
                         'isAtAll': false
                    }
                }' $prod_webhook_url
}


test_dingding_push(){
      curl      -H "Content-Type: application/json" \
                -d '{
                    "msgtype": "text",
                    "text": {
                        "content": "【生产环境告警,请及时处理】\n[0代表正常设备;大于0代表异常设备]:\n '"$MESSAGE"' \n @19099999999@180888888888"
                    },
                    'at': {
                         'atMobiles': ['19099999999','180888888888'],
                         'isAtAll': false
                    }
                }' $test_webhook_url
}


#
MySQL_Results=$( cat "$text_file"   |  sed   -n   3p)
if [ $MySQL_Results  == 0 ] ; then
    echo  "Device  is online"
else
    prod_dingding_push   &&  test_dingding_push
fi

2. 根据业务需求配置定时任务

[root@localhost]# crontab  -l
30  08,16,23   *   *   *    /opt/monitor/device/device.sh  >  /dev/null  2>&1

3. @具体人不生效

      消息内容content中要带上"@手机号",跟atMobiles参数结合使用,才有@效果,如下示例。

### 回答1: 我可以为您提供一些建议: 1. 使用shell脚本调用钉钉API,将执行结果发送钉钉群中。 2. 使用Python脚本模拟登录钉钉账号,将执行结果发送钉钉群中。 3. 使用shell脚本执行结果,通过消息队列发送钉钉群中。 4. 使用curl命令将shell脚本的执行结果发送钉钉群中。 ### 回答2: 编写一个shell脚本,将执行结果推送钉钉系统的消息群组中。实现这个目标,可以使用钉钉提供的开放API接口来发送消息。 首先,我们需要在钉钉开放平台上创建一个自定义机器记录下钉钉提供的Webhook地址。 然后,在shell脚本中,我们可以使用curl命令来发送HTTP POST请求,将脚本的执行结果作为消息内容发送钉钉群组。 以下是一个示例shell脚本,其中将"your_webhook"替换为自己创建的机器Webhook地址: ```shell #!/bin/bash # 执行命令,将结果保存到变量中 result=$(your_command) # 组装要发送的消息内容 message="执行结果:${result}" # 发送HTTP POST请求到钉钉机器 curl -H "Content-Type: application/json" -X POST \ -d '{"msgtype": "text", "text": {"content": "'"${message}"'"}}' \ https://oapi.dingtalk.com/robot/send?access_token=your_webhook ``` 这个脚本首先执行一个命令,将其结果保存到变量中。然后,将这个结果作为消息内容,使用curl命令发送HTTP POST请求到钉钉机器的Webhook地址。发送的消息类型为文本。 当脚本执行后,它将发送执行结果到指定钉钉群组中。你可以将命令替换为你想要执行的任何命令,以及自定义发送的消息内容。 请确保在执行脚本之前,在你的机器设置中验证了你的Webhook地址,脚本中替换“your_webhook”为你自己的Webhook地址。 ### 回答3: 推送钉钉脚本可以用于将shell脚本的执行结果发送指定钉钉群组或用户。下面是一个简单的脚本示例: ```shell #!/bin/bash # 设置钉钉机器webhook地址 webhook="https://oapi.dingtalk.com/robot/send?access_token=your_access_token" # 获取shell脚本执行结果 result=$(command_to_execute) # 构建JSON数据 data="{\"msgtype\": \"text\", \"text\": {\"content\": \"$result\"}}" # 使用curl发送POST请求到钉钉机器webhook地址 curl -H "Content-Type: application/json" -d "$data" $webhook ``` 在上面的示例中,首先需要设置钉钉机器的webhook地址,将`your_access_token`替换为你的具体地址。然后,使用`command_to_execute`来替换为需要执行的shell命令,将执行结果保存到`result`变量中。接下来,构建JSON数据,其中`content`字段为执行结果。最后,使用curl命令发送POST请求将数据发送钉钉机器的webhook地址。 使用该脚本,你可以将shell脚本的执行结果推送钉钉群组或用户中,方便实时查看执行情况和结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值