点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
监测目的
监测方式






cpu=`top -b -n5 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' '{split($1, vs, ","); v=vs[length(vs)]; sub(/\s+/, "",
v);sub(/\s+/, "", v); printf "%d", 100-v;}'`
echo $cpu'%
代码解析:
split($1, vs, ",")把$1 用, 切割成数组,存到变量vs里。 v=vs[length(vs)]这是常见的取数组最后一个元素的语法。
然后通过算法运算得出使用率。

time=$(date "+%Y-%m-%d %H:%M:%S")
memoryUsed=`free -m | sed -n '2p' | awk '{printf "%f\n",($3)/$2*100}'`
echo "memory USE:${memoryUsed}% ${time}"
memory=`echo "$memoryUsed" | cut -d "." -f 1`
if [ $memory -gt 5 ]
then
echo 您当前内存使用率${memoryUsed}%
else
exit
fi
代码解析:设置时间参数#Y年份,m月份, d日期 时分秒 data是时间,后面""里的是时间格式。

time=$(date "+%Y-%m-%d %H:%M:%S")
diskUsage=`df -h | sed -n '2p' | awk '{print $5}'`
disk=`echo "$diskUsage" | cut -d "%" -f 1`
echo "$disk"
if [ $disk -gt 10 ]
then
echo 您当前磁盘使用率${disk}%
else
exit
Fi
代码解析:
df :显示磁盘分区上的可使用的磁盘空间。-h 以更易读的方式显示; awk '{print $5}' : 是行处理器命令,后面的print是打印,$5是指第5个字符; `echo "$diskUsage" | cut -d "%" -f 1`输出磁盘使用情况 磁盘输出百分比。

总 结
如果实现监测使用率的话完全可以使用top命令和vmstat来监控某使用率。 如果是在要设置警告或者是超出某一个值的报警系统那就必须需要sell脚本来实现。 但是注意的事情就是在计算某一个地方的使用率的时候一定要去了解他的计算百分比的方法,不然无法正常计算出来。 在计算CPU的时候一定要注意正常字体才能计算进去如果是粗体计算不进去所有需要把粗体转变成正常字体。

本文作者:孟俊宏(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




