因为我的云服务器,做的有定时备份,刚开始内容少,备份空间也就小,最近发现,备份体积越来越大,导致我一两个月就需要去清理一下备份,这里做个简单的shell脚本,crontab做个定时任务即可,如果想功能全面点可以上zabbix。
当硬盘空间大于80%时,钉钉机器人告警(详细的可以看我前面的zabbix钉钉告警),当然也可以做删除备份操作,看自己情况。
第一步,创建钉钉告警脚本
安装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 * * * 硬盘检测脚本路径
发表评论