我希望每次ping特定服务器时都会发生故障。
所以目前我有这样的事情:ping 8.8.8.8 | grep time=11 && date
这会ping谷歌并打印每行只有11.x的ping,这只是用于测试,所以我有一些输出不是一直存在但经常足以让我测试它。然后我有&&我认为会在grep找到字符串时打印日期的日期..但事实并非如此。所以现在我的问题是如何才能得到它以便在grep吐出的每一行中都可以附加当前的时间戳。或者更好的是将它作为grep吐出的每一行前面的前缀。用一个命令可以实现吗?或者我需要一个简单的shell脚本吗?
提前致谢。我希望我很快得到答案。 :)
也欢迎每个人使用x-mas!
答案 0 :(得分:2)
看看它是否适合你:
ping 8.8.8.8 | while read line; do echo "$(date): $line"; done | grep time=13
答案 1 :(得分:0)
您还可以使用while ! ping ...
示例启用设置以检查远程主机何时可用,以防您8.8.8.8
的路径发生故障:
declare -i cnt=0; while ! ping -c 1 8.8.8.8; do ((cnt++)); echo "test '$cnt' - network down on $(date)"; sleep 60; done
如果主机8.8.8.8
可用,则会每分钟检查一次并报告,例如:
test '10' - network down on Sat Dec 26 16:38:48 CST 2015
一旦建立了网络路径,脚本就会自行终止。