shell脚本-监测硬盘空间实现钉钉告警

shell脚本-监测硬盘空间实现钉钉告警

因为我的云服务器,做的有定时备份,刚开始内容少,备份空间也就小,最近发现,备份体积越来越大,导致我一两个月就需要去清理一下备份,这里做个简单的shell脚本,crontab做个定时任务即可,如果想功能全面点可以上zabbix。

当硬盘空间大于80%时,钉钉机器人告警(详细的可以看我前面的zabbix钉钉告警),当然也可以做删除备份操作,看自己情况。

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-53.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0
https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-54.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

第一步,创建钉钉告警脚本

安装python及依赖

#安装epel源
yum -y install epel-release
#安装python及依赖模块
yum -y install python && yum -y install python-pip  && pip install requests

创建dingding.py ,并添加执行权限

注意:需要修改2处:webhook地址和日志路径,改为你自己的

#!/usr/bin/python
#coding:utf-8
import requests,json,sys,os,datetime
# 机器人的Webhook地址
webhook="你的钉钉webhook"
#日志路径
log="日志存放路径"

user=sys.argv[1]
text=sys.argv[3]
data={
 "msgtype": "text",
 "text": {
 "content": text
 },
 "at": {
 "atMobiles": [
 # 在web端用户绑定媒介中通过指定用户注册是的手机号,可以通知指定人员,否则只发消息,不艾特具体人
 user
 ],
 "isAtAll": 0
 # 设置为1,则@所有人
 # "isAtAll": 1
 # 设置为0,则@一个人
 # "isAtAll": 0
 }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("$log"):
 f=open("$log","a+")
else:
 f=open("$log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
 f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
 f.close()
else:
 f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
 f.close()

第二步,创建硬盘检测脚本

#!/bin/bash
#    df|grep以/结尾的行| awk   打印第5列   |sed 替换%为空
DF=`df |grep -E '/$' |awk '{print $5}'|sed 's/%//'`
#也可以通过awk过滤/dev/sd|hd|vd
#DF=`df |awk -F% '/^\/dev\/sd|hd|vd/{print $1}'|awk '$NF >10{print $NF}'|tail -n1`
#或者是awk过滤硬盘容量
#DF=`df -m |awk '$2 >10000{print $5}'|cut -d% -f1|tail -n1`

#判断DF值是否大于80
if [ $DF -ge 80 ]
then
  #钉钉机器人脚本,发送告警消息
  dingding.py 《我的钉钉ID或手机号》 test "关键字+硬盘容量超过80%"
fi

第三步,添加定时任务

每天中午12点运行检测脚本,超过80%钉钉发送告警消息

crontab -e
0 12 * * * 硬盘检测脚本路径
good good study, day day up!

发表评论

textsms
account_circle
email

shell脚本-监测硬盘空间实现钉钉告警
因为我的云服务器,做的有定时备份,刚开始内容少,备份空间也就小,最近发现,备份体积越来越大,导致我一两个月就需要去清理一下备份,这里做个简单的shell脚本,crontab做个定时任务即…
扫描二维码继续阅读
2021-11-10