做服务器运维的小伙伴,有时候可能会遇到某个程序突然挂了,重启也启动不了,这个有可能是服务器硬盘空间被占满了,以下简单shell脚本可实现服务器硬盘空间的检测,配合cron和企微机器人可实现自动预警,避免硬盘被占满问题
shell脚本如下:
#!/bin/bash
maxUse=90 #磁盘最大使用率,超过90%报警
wxWorkKey=xxxx #企业微信机器人key
# 获取所有硬盘列表
disks=$(df -h | grep '^/dev/' | awk '{print $6}')
# 检测每个硬盘的使用情况
for disk in $disks
do
usage=$(df -h $disk | grep '^/dev/' | awk '{print $5}' | cut -d'%' -f1)
if [ "$disk" = "/" ]; then
disk="系统盘"
fi
echo "硬盘检测: $disk 已使用: $usage%"
if [ $usage -gt $maxUse ]; then
#磁盘空间满时,自动发送通知到企业微信
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key='${wxWorkKey} \
-H 'Content-Type: application/json; charset=UTF-8' \
-d '
{
"msgtype": "text",
"text": {
"content": "磁盘检测:'${disk}'已使用'${usage}'%"
}
}'
fi
done
测试效果以及企微机器人Key获取方式如下:
定时执行脚本
可以使用cron
来定期执行脚本,实现自动通知功能,由于比较简单,请自行百度