主机监控
#!/bin/bash
#description:获取主机cpu内存等
cpu(){
local user system idle cwait
user=$(vmstat | awk 'NR==3{print $13}')
system=$(vmstat | awk 'NR==3{print $14}')
idle=$(vmstat | awk 'NR==3{print $15}')
cwait=$(vmstat | awk 'NR==3{print $16}')
echo "CPU用户占用:$user%"
echo "CPU系统占用:$system%"
echo "CPU空闲占用:$idle%"
echo "CPU等待磁盘I/O响应占用:$cwait%"
}
memory(){
local used01 free01 buffers_cached used free total rows userd_per
rows=$(free -m|wc -l)
if [ $rows -eq 3 ];then
used01=$(free -m|awk 'NR==2{print $3}')
free01=$(free -m|awk 'NR==2{print $4}')
buffers_cached=$(free -m|awk 'NR==2{print $6}')
used=`expr $used01 - $buffers_cached`
free=`expr $free01 + $buffers_cached`
total=`expr $used + $free`
userd_per=$(awk 'BEGIN{printf "%.2f%\n",('$used'/'$total')*100}')
echo "内存总共:${total}M"
echo "内存使用:${used}M"
echo "内存剩余:${free}M"
echo "内存使用率:$userd_per%"
elif [ $rows -eq 4 ];then
used=$(free -m|awk 'NR==3{print $3}')
free=$(free -m|awk 'NR==3{print $4}')
total=`expr $used + $free`
userd_per=$(awk 'BEGIN{printf "%.2f%\n",('$used'/'$total')*100}')
echo "内存总共:${total}M"
echo "内存使用:${used}M"
echo "内存剩余:${free}M"
echo "内存使用率:$userd_per%"
else
echo "free -m is not ok!"
exit 1
fi
}
disk(){
local Mounted Size Used Avail Use
part=$(df -h|awk 'BEGIN{OFS="="}NR>1{print $6,$2,$3,$4,int($5)}')
for p in $part;do
Mounted=$(echo $p|cut -d"=" -f1)
Size=$(echo $p|cut -d"=" -f2)
Used=$(echo $p|cut -d"=" -f3)
Avail=$(echo $p|cut -d"=" -f4)
Use=$(echo $p|cut -d"=" -f5)
#echo "$Mounted磁盘空间共:$Size,已使用:$Used,剩余:$Avail,使用率:$Use%"
if [ $Use -gt 10 ];then
echo "$Mounted磁盘空间使用率超过10%为:$Use%,剩余磁盘空间$Avail,请关注!"
fi
done
}
disk
cpu
memory