linux系统磁盘监控脚本
2019-06-21 本文已影响0人
以梦为马ll不负韶华
主要场景应用于主机磁盘用量突增的情况监控,以便于及时介入处理,避免磁盘爆满。
#! /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