可以在ping时仅显示毫秒数,而不是整个结果页吗?
我想检查我的服务器是否在线,所以我想返回“ OK xyz ms”或“ FAIL”。我目前正在这样做:
#!/bin/sh
ergebnis=$(ping -qc1 google.com)
ok=$?
avg=$(echo -e "$ergebnis" | tail -n1 | awk '{print $4}' | cut -f 2 -d "/")
if [ $ok -eq 0 ]
then
echo "OK $avg ms"
else
echo "FAIL"
fi
但是,这使用了很多管道,并且由于我经常运行此命令来监视服务器,因此我想知道是否存在“更智能”的方法。我也担心当ping命令失败时,我的管道可能无法正常工作。
另一个awk
变化:
ping -qc1 google.com 2>&1 | awk -F'/' 'END{ print (/^rtt/? "OK "$5" ms":"FAIL") }'
-F'/'
-将斜杠/
视为字段分隔符输出示例:
OK 47.090 ms
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句