Shell脚本发送告警示例

脚本示例如下,请根据自身情况修改使用:

  1. #!/bin/bash
  2. taskid=189 # 告警任务ID
  3. token="46fae93eaagc34f41a90c716168ba3b212b14ddd" # 告警任务token(示例token)
  4. # 生成签名
  5. function genSign() {
  6. local taskid=$1
  7. local timestamp=$2
  8. local token=$3
  9. if [ `uname -s` == "Darwin" ]; then
  10. echo -n "$taskid&$timestamp$token" | md5
  11. else
  12. echo -n "$taskid&$timestamp$token" | md5sum | awk '{printf $1}'
  13. fi
  14. }
  15. # 转义特殊字符
  16. function escape() {
  17. local w=${1//\"/\\\"}
  18. echo $w
  19. }
  20. # 生成签名
  21. timestamp=`date +%s`
  22. sign=`genSign "$taskid" "$timestamp" "$token"`
  23. # 请求参数
  24. errno=10086
  25. error="您的余额已不足"
  26. body='{
  27. "taskid": "'${taskid}'",
  28. "timestamp": "'${timestamp}'",
  29. "sign": "'${sign}'",
  30. "ctn": {
  31. "errno": '${errno}',
  32. "error": "'`escape "$error"`'"
  33. }
  34. }'
  35. echo 'request body is:'
  36. echo $body
  37. # 发送请求
  38. curl -X POST 'https://alarm-dog-service.domain.com/alarm/report' \
  39. -H 'Content-Type: application/json' \
  40. -d "$body"

将脚本保存为 dog.sh,然后添加可执行权限 chmod a+x dog.sh,然后执行 ./dog.sh,可能输出以下示例:

  1. request body is:
  2. { "taskid": "189", "timestamp": "1596210687", "sign": "7abe4822773ca649dffc6bd431bca8e5", "ctn": { "errno": 10086, "error": "您的余额已不足" } }
  3. {"data":{"uuid":"0be874d8-1a1f-4592-8163-5aa072166b47","report_time":"2020-07-31 23:51:34"},"msg":"success","code":0}