当前位置: 首页 > 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-测试服务器"

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 学习threejs,绘制二维线
  • vue2项目实现国际化(若依框架示例)
  • Java 全栈开发中的最佳实践:从前端到后端的完整流程
  • Swing模拟银行柜台系统
  • Dify 中的讯飞星火平台工具源码分析
  • 【嵌入式硬件】续流二极管
  • 流量特征随机ua修改
  • Python 学习之虚拟环境
  • 一元运算符(自增自减)
  • 力扣P1706全排列问题 很好的引入暴力 递归 回溯 dfs
  • Docker 的安装部署与基本使用
  • 使用 from __future__ import annotations 语句来允许在类型注释中使用尚未定义的类名
  • 用 Pygame 实现一个乒乓球游戏
  • 数字IC设计\FPGA 职位经典笔试面试整理--语法篇 Verilog System Verilog(部分)
  • lxml库
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • codis proxy处理流程
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • gf框架之分页模块(五) - 自定义分页
  • HashMap ConcurrentHashMap
  • JavaScript的使用你知道几种?(上)
  • Linux下的乱码问题
  • SQLServer之索引简介
  • web标准化(下)
  • 给第三方使用接口的 URL 签名实现
  • 规范化安全开发 KOA 手脚架
  • 记一次和乔布斯合作最难忘的经历
  • 日剧·日综资源集合(建议收藏)
  • 深度学习中的信息论知识详解
  • 用Python写一份独特的元宵节祝福
  • 转载:[译] 内容加速黑科技趣谈
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​虚拟化系列介绍(十)
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #NOIP 2014# day.1 T2 联合权值
  • #NOIP 2014#Day.2 T3 解方程
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (02)vite环境变量配置
  • (1)Android开发优化---------UI优化
  • (ibm)Java 语言的 XPath API
  • (java)关于Thread的挂起和恢复
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (黑马点评)二、短信登录功能实现
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (译)计算距离、方位和更多经纬度之间的点
  • .axf 转化 .bin文件 的方法
  • .equals()到底是什么意思?
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 回调、接口回调、 委托