首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时监测-%iowait

实时监测-%iowait
EN

Stack Overflow用户
提问于 2018-02-09 02:25:38
回答 1查看 48关注 0票数 0

我对脚本很陌生,我知道下面的问题很简单,但在google中没有得到任何东西。请帮帮忙

sar命令提供以下输出,

代码语言:javascript
复制
root@virt01:~# sar 1 1

Linux 3.19.0-42-generic (virt01.ubuntu.com)     13/02/16        _x86_64_        
(1 CPU)

12:19:55        CPU     %user     %nice   %system   %iowait    %steal     
%idle

12:19:56        all      0.00      0.00      0.00      0.00      0.00    
100.00
Average:        all      0.00      0.00      0.00      0.00      0.00    
100.00
root@virt01:~#

只想知道如何检查特定的值,例如:%iowait,如果超过50,发送邮件警报。

如果你能帮忙,它会很感激的。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-09 02:54:11

根据您的确切目标,我可能会解决您提出的问题,通过一个简单的管道设置。这个特殊的例子是脆弱的,因此可以根据需要进行按摩,但考虑到sar的示例调用,它将起作用:

代码语言:javascript
复制
$ PERC=$(printf "%.0f" $(sar 1 1 | tail -1 | awk '{print $6'}))
$ [[ "$PERC" -ge 50 ]] && echo "IOwait% $PERC" | mail -s "iowait over 50%" -t "you@example.com"

零件:

  • sar 1 1 ->你知道的
  • tail -1 ->只取最后一行“平均值”
  • awk '{print $6'} ->打印第6列,%IOwait

上述对线的结果是"3.72“这样的百分比。然而,对于下一行,shell将需要一个整数,因此,printf来拯救:

  • printf "%.0f" "$PERC" ->打印浮点数为0小数,适当时取四舍五入

下面一行说:“如果大于50 %,请执行邮件命令:

  • [[ "$PERC" -ge 50 ]] ->如果大于50
  • 如果前面的命令为真,&& ->将执行下一个命令
  • echo "IOwait% $PERC" | mail -s "iowait over 50%" -t "you@example.com" ->主要是自我解释,发送一封电子邮件。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48697849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档