美文网首页
linux系统磁盘监控脚本

linux系统磁盘监控脚本

作者: 以梦为马ll不负韶华 | 来源:发表于2019-06-21 00:14 被阅读0次

主要场景应用于主机磁盘用量突增的情况监控,以便于及时介入处理,避免磁盘爆满。

示例5.PNG
#! /bin/bash

#定义数组及变量
declare -a mt
declare -a pt1
declare -a pt2
declare -a pt3
i=0

#获取本机IP

theip=`hostname -i`

#设置分隔符
IFS='
'

#第一次获取磁盘用量及挂载点信息
function getdiskinfo1(){
diskinfo=`df -h|grep -v 'Mounted'`
for theinfo in $diskinfo;do 
pt1[$i]=`echo $theinfo|awk '{print $5}'`
mt[$i]=`echo $theinfo|awk '{print $6}'`
# echo "pt1$i:"${pt1[$i]}
# echo "mt$i:"${mt[$i]}
((i++))
done
i=0

}


#第二次获取磁盘用量
function getdiskinfo2(){
diskinfo=`df -h|grep -v 'Mounted'`
for theinfo in $diskinfo;do 
pt2[$i]=`echo $theinfo|awk '{print $5}'`
# echo "pt2$i:"${pt2[$i]}
((i++))
done
i=0

}


#第三次获取磁盘用量
function getdiskinfo3(){

diskinfo=`df -h|grep -v 'Mounted'`
for theinfo in $diskinfo;do 
pt3[$i]=`echo $theinfo|awk '{print $5}'`
# echo "pt3$i:"${pt3[$i]}
((i++))
done
i=0

}

#比对增长差异
function check(){

for ((k=0;k<${#pt3[*]};k++));do
     # echo "pt1[$k]:"${pt1[$k]}
  #    echo "pt2[$k]:"${pt2[$k]}
  #    echo "pt3[$k]:"${pt3[$k]}
     if [[ `expr ${pt3[$k]/\%/} - ${pt2[$k]/\%/} - ${pt2[$k]/\%/} + ${pt1[$k]/\%/}` -gt 2 ]];then
       echo "主机"${theip}"挂载点"${mt[$k]}"最近1小时磁盘使用率由"${pt2[$k]}"突增至"${pt3[$k]}",请及时关注!"
     fi

done

}


#数组值偏移
function exchange(){

pt1=()
for ((k=0;k<${#pt2[*]};k++));do
     pt1=(${pt1[*]} ${pt2[$k]})
     pt2=(${pt2[*]} ${pt3[$k]})    
done
pt3=()
}

#主函数
function main(){
    
    getdiskinfo1
    sleep 60m
    getdiskinfo2
    sleep 60m
    getdiskinfo3
while true; do
   check
   sleep 60m
   exchange  
   getdiskinfo3  
done
}

#执行
main

相关文章

网友评论

      本文标题:linux系统磁盘监控脚本

      本文链接:https://www.haomeiwen.com/subject/hzteqctx.html