Shell脚本一键监控平台到期时间并钉钉告警推送指定人

1. 监控需求

客户侧有很多平台需要定期授权,授权后管理后台才可正常登录,为避免授权到期,现撰写脚本自动化监控平台授权到期时间,在到期前15天钉钉或其他媒介提醒。

2. 监控方案

2.1 收集平台信息

梳理需要监控的平台地址信息,包含平台名称、地址、到期时间三个字段。

cat /mnt/paltform_monitor/expiry_list.txt

复制代码
xx支付平台,https://192.168.91.1:8068,2026-3-1
xx交易平台,https://1.2.3.4:809,2025-10-21
xx管理平台,https://5.6.7.8:2500,2025-11-7

2.2 撰写监控脚本

cat /mnt/paltform_monitor/paltform_monitor.sh

复制代码
#!/bin/bash
# 监控平台登录过期时间,提前15天告警【自定义时间】
EXPIRY_FILE="/mnt/paltform_monitor/expiry_list.txt"
LOG_FILE="/var/log/expiry_monitor.log"
CURRENT_TS=$(date +%s)
WARNING_DAYS=15


#定义钉钉告警函数
prod_dingding_push(){
      MESSAGE=$1
      prod_webhook_url="https://oapi.dingtalk.com/robot/send?access_token=88888888888888888888888888888888888888888"
      curl   -H "Content-Type: application/json"  -d '{"msgtype": "text","text": {"content": " '"$MESSAGE"' @13888888888"},'at': {'atMobiles': ['13888888888'],'isAtAll': false} }'   $prod_webhook_url
}


while IFS=',' read -r NAME URL EXPIRY_DATE; do
  EXPIRY_TS=$(date -d "$EXPIRY_DATE" +%s 2>/dev/null) || continue
  DAYS_LEFT=$(( (EXPIRY_TS - CURRENT_TS) / 86400 ))

  if [ $DAYS_LEFT -le $WARNING_DAYS ] && [ $DAYS_LEFT -ge 0 ]; then
    prod_dingding_push "【平台授权到期告警】:$NAME 授权将在 $DAYS_LEFT 天后过期!【地址$URL】"
    echo "[$(date)] Alert: $NAME $URL expires in $DAYS_LEFT days." >> $LOG_FILE
  fi
done < $EXPIRY_FILE

2.3 配置定时任务

根据业务需求设置告警推送时间,本文设置每天上午10点执行一次脚本。

复制代码
00  10  *   *   *  /bin/bash   /mnt/paltform_monitor/paltform_monitor.sh   >  /dev/null  2>&1

2.4 钉群告警推送展示

相关推荐
小成202303202656 小时前
Linux高级02
linux·开发语言
mounter6256 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==6 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
特长腿特长7 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5387 小时前
Linux环境变量
linux·运维·服务器
pluvium277 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员7 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos
CHHC18808 小时前
NetCore树莓派桌面应用程序
linux·运维·服务器
云栖梦泽9 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
si莉亚10 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源