首先是长时间ping,这个非常简单,使用参数-c即可:
[root@test ~]# ping 192.168.2.1 -c 10 

上面我们ping了10次,每次的时间1秒,因此比如你要ping连天那么就是60*60*24*2=172800。
接下来是加时间戳:
root@test ~]# ping 192.168.2.1 -c 10 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) } '
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.    10:30:21
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.436 ms    10:30:21
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=0.343 ms    10:30:22

 

然后我们把信息输出到文本:
[root@test ~]# ping 192.168.2.1 -c 10 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) } '>ping.log
[root@test ~]# cat ping.log
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.    10:37:23
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.398 ms    10:37:23
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=0.288 ms    10:37:24

 

最后,我们需要把任务放到后台去:
[root@test ~]# nohup ping 192.168.2.1 -c 10 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) } '>ping1.log &
[1] 2616
[root@test ~]# ls
anaconda-ks.cfg  check1.sh  Desktop  eygle.com  httpd  login  pass.conf  ping1.log  ping.log  test1.sh  test1.sh1
[root@test ~]# cat ping1.log 
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.    10:40:22
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.373 ms    10:40:22

 

注:nohup ping 192.168.2.1 -c 10 | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()) } '>ping1.log 2>&1 &

这样每隔4K左右会打印到文件

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐