这是我的情况的简短描述。我当前的ISP无法正常工作,因此,我想记录ping成功和失败的情况,以证明它无法正常工作。我将使用Linux,但Windows也可以。我一直在阅读,据我所知,shell脚本或Python代码最好。在
所以,更详细地说:我想每5秒在一个网站上做一次ping。如果ping成功,它应该将ping的正常结果输出到一个文件中。但是Ping失败有很长的超时时间,所以我想让程序这样,如果Ping在4秒左右没有成功,它会停止Ping尝试,但仍然会输出完整的Ping数据,并显示“1个数据包已发送,0个已接收”等,就像时间用完时一样。在
以下是我目前所掌握的情况:while true
do
ping -c1 -w4 www.example.com >> log.txt
sleep 5
done
不幸的是,有两个问题。首先,“-w4”并不像我想象的那样在4秒后超时。第二,睡眠增加了已经花费的时间。所以,如果ping需要3秒,那么循环将需要8秒。因为我将编写另一个程序来计算成功、失败和输出停机时间百分比,所以循环在失败时花费大量额外的时间是不可接受的。在
所以,鉴于我的需要,最好的办法是什么?我所做的能满足需要吗?谢谢你的帮助!在
PS:我几乎不知道编写shell脚本,(虽然我能胜任终端),但我对Python的了解更少(虽然我知道C++)。提前道歉!在