顶部命令+如何validationIOWAIT值一小时

我的目标是从top命令中检查不高于50的iowait

如果价值高于50多个小时,则需要对此发出警报(通过脚本或其他选项)

我到现在为止做的是:

top-n|grepiowait CPUstates:94.3%idle,0.5%user,5.2%kernel,0.0%iowait,0.0%swap 

我可以很容易地捕捉到爱荷华州如下:

  top-n|grepiowait|awk'{print$9}'|seds'/%//' 0.0 

但如何validation至less一个小时以上的50以上的爱奥华值?

我相信你了解收集数据的一般方法,随着时间的推移收集和跟踪价值。 具体将是一个相当复杂的脚本,我们不是一个脚本写作服务。

如果你想要沿着这条路线走,你可能会发现sar或者iostat更有用。

然而,有比这更好的工具来做这样的事情,大多数人会使用某种监控工具,如zabbix , nagios , munin等。他们将收集统计发送警报等。在zabbix的情况下,他们甚至很容易安装和configuration。

你可以使用iostat来达到这个目的。 只需运行iostat -y 3600 | grep -A 1 avg-cpu iostat -y 3600 | grep -A 1 avg-cpu

上面的命令将每小时报告各种CPU状态(idle,iowait,ecc),下面的grep只会推断你关心的两行。 显然,在剧本投入生产之前,可以用较less的等待时间(例如:5秒)进行一些testing。

编辑:对于solaris,你可以使用iostat -c 3600 grep命令将是不同的,所以你必须testing自己。