shell编程实战之监控磁盘分区的运用率-linux运维
固然我们是不但愿产生此类题目的,要是网站总涌现不不乱或打不开状况,会给会员一种不靠谱的感觉。所以,关于磁盘分区的运用,我们需要实时监控,当超过预设值时,就发送份邮件或短信给治理员,将差错抹杀至摇篮里。
关于此足本的编写是很简略的,主要一点就是猎取到磁盘分区的运用率。我们晓得df下令可以列出各个分区的空间运用状况:
# df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 3986648 0 3986648 0% /dev tmpfs 3999984 0 3999984 0% /dev/shm tmpfs 3999984 528 3999456 1% /run tmpfs 3999984 0 3999984 0% /sys/fs/cgroup /dev/vda1 41931756 17576208 24355548 42% / /dev/vdb1 52403200 476572 51926628 1% /data /dev/vdb2 104806400 29255772 75550628 28% /www tmpfs 799996 0 799996 0% /run/user/0 /dev/vdb3 52402180 398576 52003604 1% /mnt
我们可以看到各个分区的空间运用状况。然后接口grep下令以及awk下令,过滤掉其他信息,只留下各个分区的运用状况信息。
我们只想得到以/dev/开头的分区信息
# df | grep ^/dev /dev/vda1 41931756 17576264 24355492 42% / /dev/vdb1 52403200 476572 51926628 1% /data /dev/vdb2 104806400 29255980 75550420 28% /www /dev/vdb3 52402180 398576 52003604 1% /mnt
然后继续运用awk下令过滤不想要的信息
# df | grep ^/dev | awk '{print $1":"$5}' /dev/vda1:42% /dev/vdb1:1% /dev/vdb2:28% /dev/vdb3:1%
拿到各个分区的运用率后,下面就是对其进行轮回遍历,顺次推断各个分区的运用状况。
下面给出完成的代码:
#!/bin/bash # 监控分区的空间运用状况,超过预设值告警 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:~/bin export LANG=en # 分区空间运用率阀值 USE_LIM=70 while ((1)) do disks=$( df | grep ^/dev | awk '{print $1":"$5}') for disk in $disks do used=$(echo $disk | cut -d: -f2 | cut -d'%' -f1) if [ "$used" -ge "$USE_LIM" ];then # 调取告警足本,这里直接用echo来替换了 echo "$(echo $disk | cut -d: -f1) is used $used%" fi done sleep 10 done
注意:个别我们办事器上用的语系都是英文的,特殊是在编写shell足本的时候,倡议加上这样一行
export LANG=en
由于我们是要做实时的监控,所以足本里运用了死轮回,表示此足本不会停会不断轮回施行。固然,施行速度也是要做限定的,否则占用太多办事器资源就不太好了。所以这里运用了sleep 10,表示10秒监控一次。
别的这里还要一点需要注意,就是过滤掉百分号%。这里我们运用了cut下令来过滤掉%,然后拿到纯数字型的分区运用率和预设值做比拼。
以上就是shell编程实战之监控磁盘分区的运用率的细致内容,更多请关注 百分百源码网 其它相干文章!