今天分享个简单的监控磁盘空间脚本。其实shell脚本写起来不难,关键是你有整个脚本的思路!
好。大概思路是这样:
我现在想要监控/分区的空间使用量,若超过10%的话,发送一个报警短信!
首先,我们要如何查看磁盘分区的使用量呢?
命令:df -h 即可!
1.必须函数:[root@localhost~]#df
文件系统1K-块已用可用已用%挂载点
/dev/mapper/VolGroup00-LogVol00
111093282154636838125221%/
/dev/sda1101086119998386813%/boot
tmpfs1037748010377480%/dev/shm
[root@localhost~]#df|sed-n'/\/$/p'
111093282154636838125221%/
/$:表示以斜杠(/)结尾($)的行
好,以上我是用sed把以/结尾的行打印出来了![root@localhost~]#df|sed-n'/\/$/p'|gawk'{print$4}'
21%
$4:表示打印出第四个字段
当打印/的行之后,再用awk打印出第四个参数,也就是21%[root@localhost~]#df|sed-n'/\/$/p'|gawk'{print$4}'|sed's/%//'
21
s:替换
s/%//:表示将百分号替换成空
最后,打印出21%之后呢,再通过sed将%符合替换为空,那么我们就可以得出21这个数了
2.创建脚本
创建一个脚本,提示当/的使用空间超过10%的时候,向ley的用户发送一封报警邮件#!/bin/bash
#monitoravailablediskspace
s=`df|sed-n'/\/$/p'|gawk'{print$4}'|sed's/%//'`
if[$s-ge10]
then
echo"$s%userd"|mail-s"Diskwarning"ley
fi
~
ley用户必须是在系统中存在的用户
******************************************************************************************
[ley@localhost~]$mail查看邮件
Mailversion8.16/6/93.Type?forhelp.
"/var/spool/mail/ley":5messages5new
>N1root@localhost.localWedNov517:0216/654"Diskwarning"
N2root@localhost.localWedNov517:0216/654"Diskwarning"
N3root@localhost.localWedNov517:0416/654"Diskwarning"
N4root@localhost.localWedNov517:0416/654"Diskwarning"
N5root@localhost.localWedNov517:0416/654"Diskwarning"
&
Message1:第一条信息
Fromroot@localhost.localdomainWedNov517:02:16
Date:Wed,5Nov17:02:16+0800
From:root
To:ley@localhost.localdomain
Subject:Diskwarning
21%userd
当然,这个脚本也是对于新手提供些思路而已,大牛们就请绕道了!