当前位置: 首页 > news >正文

shell脚本定时任务通知到钉钉

shell脚本定时任务通知到钉钉

1、背景

​ 前两天看了一下定时任务,垃圾清理、日志相关、系统巡检这些,有的服务器运行就有问题,或者不运行,正好最近在做运维标准重制运维手册,顺便把自动化这块优化一下,所有脚本都添加了日志输出,规整一下文件啥的,最后就是把定时任务的脚本都加上通知,看一下运行情况。

2、实现钉钉通知

​ 这块网上的帖子和文档都不少,找了个简单的方法先实现了再说,后面在慢慢优化,思路比较呆就是写一个通知脚本,然后定时任务的脚本调用这个钉钉通知,传递一下消息,消息体是有限制的不能超过20000bytes,废话不多说直接贴代码

#钉钉通知#!/bin/bash
#auth:Dragon_qucurl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxx12761a52205d9830125d' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {"content": "脚本运行通知:\n'"$1"'"
},
"at": {
"atMobiles": [
#可以加手机号,直接@群内人员,加双引号
],
"isAtAll": false
}
}'

调用的话很简单,直接调用这个文件传一个值,这个值就是消息体,本来想直接放输出日志来的,有的太大了放不下,下面这个就是删除标签为none镜像节省空间的,要不测试服天天跑的镜像太多了

#!/bin/bash
#auth:Dragon_qu
#Des:清理标签为none的镜像# 定义日志文件路径,文件名包含当前的年月日
LOG_FILE="/scripts/logs/delete_none_images/delete_none_images-$(date +%Y%m%d).log"# 列出所有无标签镜像的 ID
IMAGE_IDS=$(docker images --filter "dangling=true" -q)# 判断是否有无标签镜像
if [ -z "$IMAGE_IDS" ]; then# 如果没有无标签镜像,输出“今日无需清理镜像”echo "今日无需清理镜像" >> $LOG_FILE
else# 循环删除无标签镜像for IMAGE_ID in $IMAGE_IDSdo# 删除镜像并将日志输出过滤,只保留Untagged信息并修改文本docker rmi $IMAGE_ID 2>&1 | grep "Untagged:" | sed 's/Untagged:/已删除镜像:/' >> $LOG_FILEdone
fi
/scripts/notify_log.sh "$LOG_FILE-测试服务器"
http://www.lryc.cn/news/447068.html

相关文章:

  • 2.4K star的GOT-OCR2.0:端到端OCR 模型
  • 【JavaEE】——线程的安全问题和解决方式
  • 初步认识了解分布式系统
  • react 为什么不能学习 vue3 进行静态节点标记优化性能?
  • Elasticsearch黑窗口启动乱码问题解决方案
  • Logtus IT员工参加国际技术大会
  • ant design vue组件中table组件设置分组头部和固定总结栏
  • 2024年信息安全企业CRM选型与应用研究报告
  • 【后端开发】JavaEE初阶——计算机是如何工作的???
  • Linux(Ubuntu)源码安装postgresql16.3
  • Python 入门教程(7)面向对象 | 7.6、多态
  • Cilium + ebpf 系列文章-什么是ebpf?(一)
  • RabbitMQ08_保证消息可靠性
  • 恶意Bot流量识别分析实践
  • Java2 实用教程(第6版)习题2 第四题
  • HashMap和ConcurrentHashMap的区别
  • css 下拉框展示:当hover的时候展示下拉框 z-index的用法解释
  • spring装配笔记
  • vscode【实用插件】Notes 便捷做笔记
  • 中间件:maxwell、canal
  • postman控制变量和常用方法
  • Spring Boot 中整合 Kafka
  • 什么是开放式耳机?具有什么特色?非常值得入手的蓝牙耳机推荐
  • 编译 FFmpeg 以支持 AV1 编解码器以及其他硬件加速选项(如 NVENC、VAAPI 等)
  • 解释一下Java中的多线程。如何创建一个新的线程?
  • Java语言程序设计基础篇_编程练习题**18.30 (找出单词)
  • MyBatis中 #{} 和 ${} 的区别
  • Android Perfetto 学习
  • ES数据的删除与备份
  • 论文解读《Object-Centric Learning with Slot Attention》