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

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

1、背景

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

2、实现钉钉通知

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

bash 复制代码
#钉钉通知

#!/bin/bash
#auth:Dragon_qu

curl '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镜像节省空间的,要不测试服天天跑的镜像太多了

bash 复制代码
#!/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_IDS
    do
        # 删除镜像并将日志输出过滤,只保留Untagged信息并修改文本
        docker rmi $IMAGE_ID 2>&1 | grep "Untagged:" | sed 's/Untagged:/已删除镜像:/' >> $LOG_FILE
    done
fi
/scripts/notify_log.sh "$LOG_FILE-测试服务器"
相关推荐
Lsetea4 小时前
curl指定CA目录仍报证书不受信任:--capath与OpenSSL rehash排查
运维·https·ssl·openssl·curl
夜听莺儿鸣4 小时前
502-002_Linux驱动开发模块化编程
linux·驱动开发·模块化编程
wuminyu4 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
优化Henry5 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
代码方舟5 小时前
数据科学风控实战:基于天远全能消金报告构建自动化信用评估网关
运维·人工智能·自动化
科力锐品牌君5 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
KaiwuDB5 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
zhangrelay5 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
duanshu_6 小时前
官网表单与下载异常怎么排查?五个环节定位故障
前端·自动化·flyweight
福建佰胜张工6 小时前
A5E00839230西门子工业核心配件详解:参数、安装调试与故障运维全攻略
运维·网络·安全·自动化