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

ops/2025/1/19 16:14:43/

 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'】"},'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"},'at': {'atMobiles': ['19099999999','180888888888'],'isAtAll': false}}' $test_webhook_url
}#
MySQL_Results=$( cat "$text_file"   |  sed   -n   3p)
if [ $MySQL_Results  == 0 ] ; thenecho  "Device  is online"
elseprod_dingding_push   &&  test_dingding_push
fi

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

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

http://www.ppmy.cn/ops/151423.html

相关文章

通用仓库管理系统开发书 Pyside6 + Sqlite3

通用仓库管理系统开发说明书&#xff08;包含供应商和客户管理&#xff09; 1. 项目概述 1.1 项目背景 随着企业规模的扩大和业务的复杂化&#xff0c;仓库管理变得越来越重要。为了提高仓库管理的效率和准确性&#xff0c;开发一个通用的仓库管理系统显得尤为重要。该系统将…

Apple Vision Pro 距离视网膜显示还有多远

本文介绍了视网膜屏幕的概念和人眼视敏度极限,以及头戴显示设备在视场角和角分辨率之间的权衡设计。文章还提到了苹果公司的新产品Apple Vision Pro的设计规范和视觉效果。 Retina display 是苹果公司针对其高分辨率屏幕技术的一种营销术语。这个术语最早由乔布斯在 2010 年 6…

Android File Transfer for mac

本身就是免费的&#xff0c;直接从官网下载即可&#xff0c;可以直接从官网进行下载&#xff0c;也可以从CSDN中进行下载。2种下载方式&#xff0c;选择一种就行。 有时候同步超过4G文件&#xff0c;页面显示就卡了&#xff0c;但是底层还在复制&#xff0c;多等一会记性了。 …

LTX-Video 高效视频生成模型,一键处理图片文字

LTX-Video 是由 Lightricks 在 2024 年开发的一种视频生成模型&#xff0c;这种模型采用了 transformer 和 Video-VAE 技术&#xff0c;能够高效生成高分辨率视频。此外&#xff0c;LTX-Video 支持多种视频生成方式&#xff0c;包括从文本到视频和从图像到视频。 教程链接&…

第三章:CSS的颜色表示

目录 一、名称表示 二、rgb或rgba 三、HEX或HEXA 三、HSL或HSLA 四、总结 一、名称表示 直接使用颜色的英文名称表示&#xff0c;例如红色red&#xff0c;绿色green。示例&#xff1a; p{color: red; } 二、rgb或rgba rgb分别代表红绿蓝三原色&#xff0c;数值在0~255…

phaserjs+typescript游戏开发之camera实现

以下是一个使用 Phaser.js 和 TypeScript 实现的示例&#xff0c;包含玩家移动、摄像机跟随并限制在游戏世界范围内的基本功能。 TypeScript 和 Phaser.js 实现的完整代码 安装 Phaser.js&#xff08;使用 npm&#xff09; 首先&#xff0c;确保你已经安装了 Node.js 和 npm…

Python编程与机器学习:解锁气象、海洋、水文领域的新实践

专题一、Python软件的安装及入门 1.1 Python背景及其在气象中的应用 1.2 Anaconda解释和安装以及Jupyter配置 1.3 Python基础语法 专题二、气象常用科学计算库 2.1 Numpy库 2.2 Pandas库 2.4 Xarray库 专题三、气象海洋常用可视化库 3.1可视化库介绍Matplotlib、Carto…

STM32 FreeRTOS中断管理

STM32 FreeRTOS 中断管理 一、中断优先级配置 在STM32上使用FreeRTOS时&#xff0c;合理配置中断优先级是非常重要的。STM32使用8位宽的寄存器来配置中断的优先等级&#xff0c;但实际只使用了高4位&#xff08;7:4&#xff09;&#xff0c;因此提供了最大16级的中断优先级。中…