我对脚本很陌生,我知道下面的问题很简单,但在google中没有得到任何东西。请帮帮忙
sar命令提供以下输出,
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,发送邮件警报。
如果你能帮忙,它会很感激的。
谢谢。
发布于 2018-02-09 02:54:11
根据您的确切目标,我可能会解决您提出的问题,通过一个简单的管道设置。这个特殊的例子是脆弱的,因此可以根据需要进行按摩,但考虑到sar的示例调用,它将起作用:
$ 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" ->主要是自我解释,发送一封电子邮件。https://stackoverflow.com/questions/48697849
复制相似问题