日常监控-避免产生大量邮件处理脚本
环境:centos7
1、情况一(避免产生大量邮件问题)
失败情况:
连续失败两次及以上,才发送信息
成功情况:
成功不发送信息
失败一次,下一次成功,不发送信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | [root@node] cat b.sh #!/bin/bash #当前目录路径 dir =$( cd $( dirname $0); pwd ) #1表示失败0表示成功 if [ $1 - eq 1 ] then #失败一次记录一条 echo 1 >> $ dir /result .txt #计数 c=$( cat $ dir /result .txt| wc -l) #大等于2次失败 发送 if [ $c - ge 2 ] then #发送信息 echo sed -meil else #失败一次 echo faile-one fi else rm -rvf $ dir /result .txt echo server-ok fi |
执行结果如下
1 2 3 4 5 6 7 8 9 | [root@node-1 shell] # ./b.sh 1 faile-one [root@node-1 shell] # ./b.sh 1 sed -meil [root@node-1 shell] # ./b.sh 0 removed ‘ /wj/shell/result .txt’ server-ok [root@node-1 shell] # ./b.sh 0 server-ok |
2、情况二(避免产生大量邮件问题)
失败的情况:
连续2次失败 每次都发送信息
第三次 提示让用户解决问题
连续4次还是失败就不发了
大于等于3次失败后,问题被解决 发送一条问题解决的邮件
成功的情况:
大于等于3次失败后,问题被解决 发送一条问题解决的邮件
其他成功情况,不发送短信
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | [root@node] cat a.sh #!/bin/bash #当前目录路径 dir =$( cd $( dirname $0); pwd ) #判断为失败1成功其他数字失败 if [ $1 - eq 1 ] then #失败一次记录一条 echo 1 >> $ dir /result .txt #计数 c=$( cat $ dir /result .txt| wc -l) #小等于2次失败 发送 if [ $c - le 2 ] then echo sed -meil elif [ $c - eq 3 ] then echo '失败两次了,请检查服务,后面再失败就不了' else echo no- sed -meil fi #判断为成功 else #假如文件存在 if [ -f $ dir /result .txt ] then #记一个失败的数量 c=$( cat $ dir /result .txt| wc -l) #大等于于3次后成功,提示一个问题解决 if [ $c -g 3 ] then rm -rvf $ dir /result .txt echo '问题被解决!' else #失败次数小于3都是ok rm -rvf $ dir /result .txt echo servers-ok fi #没有文件则一直是好的 else echo servers-yizhi-ok fi fi |
执行情况如下,0成功 1表示失败
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@node-1 shell] # ./a.sh 0 servers-yizhi-ok [root@node-1 shell] # ./a.sh 0 servers-yizhi-ok [root@node-1 shell] # ./a.sh 1 sed -meil [root@node-1 shell] # ./a.sh 1 sed -meil [root@node-1 shell] # ./a.sh 1 失败两次了,请检查服务,后面再失败就不了 [root@node-1 shell] # ./a.sh 0 removed ‘ /wj/shell/result .txt’ 问题被解决! [root@node-1 shell] # ./a.sh 1 sed -meil [root@node-1 shell] # ./a.sh 0 removed ‘ /wj/shell/result .txt’ servers-ok [root@node-1 shell] # ./a.sh 0 servers-yizhi-ok |
做一个决定,并不难,难的是付诸行动,并且坚持到底。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)