linux查看磁盘的使用率并推送告警

查询linux的硬盘使用情况,定时推送告警通知,这里只监控一个目录

创建脚本,vim check_disk.sh

#!/bin/sh

ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|head -1|tr -d "addr:"?`

avail=$(df -h /data/  | awk '{ print $4 }' | sed -n '2p' )
used=$(df -h /data/  | awk '{ print $5 }' | sed -n '2p' )

putmsg="($ip)硬盘可用$avail已使用$used"
echo $putmsg

error_msg="$putmsg"
msg_body="{\"msgtype\":\"text\",\"text\":{\"content\":\"$error_msg\"}}"
WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=0c3c0101-836b"
req_msg=$(curl -s -H "Content-Type: application/json; charset=UTF-8" -X POST -d $msg_body $WEBHOOK_URL )
echo "硬盘监控:" $req_msg

查看data目录的磁盘使用情况

df -h /data
文件系统                     容量  已用  可用 已用% 挂载点
/dev/mapper/VG_data-LV_data  39G  30G   75G   81% /data

过滤第1行,获取第2行的值

sed -n '2p'

查看可用,已用,文件目录

df -h /data/  | awk '{ print $4,$5,$1 }'
可用 已用% 文件系统
74G 81% /dev/mapper/VG_data

因为后面推送的文本有空格,导致发送会失败,所以就分开两个字段,最后再拼成字符串

avail=$(df -h /data/  | awk '{ print $4 }' | sed -n '2p' )
used=$(df -h /data/  | awk '{ print $5 }' | sed -n '2p' )

添加判断

df -h /data/  | awk '{ print $5 }' | sed -n '2p' | sed s/%//g
81
if [ $used -ge 80 ]; then
  msg=" ($ip)  $used%"
  echo $msg
  #推送通知...
fi

添加定时任务

crontab -e

#每15分钟检查硬盘
*/15 * * * * bash /data/sh/check-disk.sh >/data/sh/logs/check-disk.log

查看定时任务

crontab -l

常用的命令

df -h

查看目录下各文件占用的大小
du -sh *

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值