shell脚本发送钉钉告警通知案例一则 —— 筑梦之路

实现原理

将要发送的消息内容保存到json文件中,通过curl命令请求钉钉机器人接口。

脚本示例

cat /opt/disk_usage_check.sh 

#!/bin/bash

# 设置警告阈值
THRESHOLD=80

#
CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")
# 获取主机名和IP
HOSTNAME=$(hostname)
IP=$(hostname -I)

# 筛选需要检查的磁盘并进行检查
df -lPh | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
  used=$(echo $output | awk '{print $1}' | cut -d'%' -f1)
  partition=$(echo $output | awk '{print $2}')

  if (( used >= THRESHOLD )); then
    # 构建payload
    PAYLOAD=$(cat <<-EOF
{       
"msgtype": "markdown",
"markdown": {
"title":"Linux服务器磁盘空间告警",
"text":"
##### Linux服务器磁盘空间告警 \n
>  ##### <font color=#67C23A> 【服务器: </font> <font color=#FF0000> $HOSTNAME</font>】 的磁盘空间超过阀值</font> :<font color=#FF0000> $THRESHOLD%  </font> \n
>  ##### <font color=#67C23A> 【服务器IP】</font> :<font color=#FF0000> $IP </font> \n
>  ##### <font color=#67C23A> 【告警时间】</font> :<font color=#FF0000> $CURRENT_TIME </font> \n
>  ##### <font color=#67C23A> 【磁盘空间占用高的分区】:<font color=#FF0000> $partition </font> 已使用 <font color=#FF0000>$used%</font> \n
>  ##### <font color=#67C23A>  该分区具体df -PTh信息如下: </font> \n
>  ##### <font color=#FF0000>  $(df -lPTh | head -n 1) </font> \n
>  ##### <font color=#FF0000>  $(df -lPTh| grep $partition) </font> \n
"
}
}
EOF
    )

    # 发送告警 (自行替换钉钉Webhook机器人的URL)
    curl -H "Content-Type: application/json" -X POST -d "$PAYLOAD"  https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXX
    echo $PAYLOAD
  fi
done

做个记录

相关推荐

  1. linux 常用脚本搜集(nginx) ——

    2023-12-21 16:48:03       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-21 16:48:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-21 16:48:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-21 16:48:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-21 16:48:03       20 阅读

热门阅读

  1. minio 整合springboot

    2023-12-21 16:48:03       30 阅读
  2. Springboot Async 引起的循环依赖

    2023-12-21 16:48:03       37 阅读
  3. 云服务器的优缺点对比

    2023-12-21 16:48:03       36 阅读
  4. 第十五章 Linux系统日志管理

    2023-12-21 16:48:03       24 阅读
  5. 前端验收测试驱动开发

    2023-12-21 16:48:03       32 阅读
  6. 【Linux】Linux运维必备:groupdel命令的使用方法

    2023-12-21 16:48:03       43 阅读
  7. C++程序设计语言-郑莉 第三章实验报告及代码

    2023-12-21 16:48:03       36 阅读
  8. 语义信息简单理解

    2023-12-21 16:48:03       50 阅读
  9. Mysql笔记

    2023-12-21 16:48:03       37 阅读
  10. Flink系列之:Apache Kafka SQL 连接器

    2023-12-21 16:48:03       27 阅读