linux下带时间ping

38 篇文章 2 订阅
36 篇文章 2 订阅

环境linux

近日由于无法判断一个网络问题故此要长ping一个地址,但有一个问题出现,当出现网络异常的时候即使ping的时候发现了超时却无法记录具体是什么时间点发生的异常,也就是说无法记录ping的时间点。

根据这个问题我详细查询了ping命令的参数,可以出没有任何参数可以使ping命令在执行的时候带有时间记录,但查询了各类资料和函数后发现可以用组合命令来实现为的需求。

引用此博客内容ping命令添加时间戳_ping 时间戳-CSDN博客

可以对ping命令和其他函数进行组合从而实现带时间的ping。

呈现如下结果:

ping 192.168.0.1 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) }'

PING 192.168.0.1 (10.37.190.10) 56(84) bytes of data.    16:24:25
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.693 ms    16:24:25

把信息输入到文本

ping 192.168.0.1 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) }' > ping.log

把任务放到后台运行

ping 192.168.0.1 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) }' > ping.log &
 

然后处于学习的目的查询了strftime函数的用法,发现这个函数还有好多参数可用。

转换控制符见下表

转换控制符说明

%a

星期几的简写形式

%A

星期几的全称

%b

月份的简写形式

%B

月份的全称

%c

日期和时间

%d

月份中的日期,0-31

%H

小时,00-23

%I

12进制小时钟点,01-12

%j

年份中的日期,001-366

%m

年份中的月份,01-12

%M

分,00-59

%p

上午或下午

%S

秒,00-60

%u

星期几,1-7

%w

星期几,0-6

%x

当地格式的日期

%X

当地格式的时间

%y

年份中的最后两位数,00-99

%Y

%Z

地理时区名称

根据这些参数我认为选择%c是最好的选择,组合命令后输入格式如下:

# ping 127.0.0.1 | awk '{ print $0"\t" strftime("%c",systime()) }'
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.        2019年04月03日 星期三 13时07分56秒
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.060 ms        2019年04月03日 星期三 13时07分56秒
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.065 ms        2019年04月03日 星期三 13时07分57秒
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.056 ms        2019年04月03日 星期三 13时07分58秒
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.051 ms        2019年04月03日 星期三 13时07分59秒

注意:使用  fflush() ,不然文件不会有信息,因为awk也是有缓存的。

ping 127.0.0.1 | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()); fflush()}' >> ping.log &

至此linux下带时间ping的问题解决。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值