在 Linux 中使用 Ping 命令输出打印时间戳

是一个命令行网络管理实用程序,几乎可用于所有操作系统,包括嵌入式网络设备。 它主要用于测试网络上主机的连通性或可达性。 默认情况下,ping 命令不会在其输出中显示时间戳。 如果您出于任何原因想使用 ping 命令输出打印时间戳,本教程将向您展示如何操作。

在 Linux 中使用 Ping 命令输出打印时间戳

显示时间戳 ping 命令的输出,只需通过 -D 标志如下。

$ ping -c 3 -D ostechnix.com

示例输出:

PING ostechnix.com(2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886)) 56 data bytes [1611825018.797092] 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=1 ttl=57 time=94.8 ms [1611825019.616530] 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=2 ttl=57 time=114 ms [1611825020.615700] 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=3 ttl=57 time=112 ms [1611825021.596463] 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=4 ttl=57 time=91.5 ms [1611825022.619467] 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=5 ttl=57 time=113 ms  --- ostechnix.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 91.543/105.095/114.408/9.815 ms
使用 Ping 命令输出打印时间戳

正如你在上面的输出中看到的, ping 命令打印时间戳(unix 时间 + 微秒,如 gettimeofday) 在每一行之前。 就我而言, [1611825018.797092], [1611825019.616530], …. [1611825022.619467] 是时间戳。

即使 Ping 命令有启用时间戳的选项,输出也不是那么用户友好。 如果要以人类可读的格式显示时间戳,请使用 ts 命令,如下节所示。

使用 ts 命令在 Ping 命令输出中启用时间戳

ts 命令是一部分 更多实用工具 包裹。 它在任何 Linux 命令的输出中将时间戳打印到每一行的开头。

使用 ts 命令,您需要安装 moreutlis 包,如以下链接所示:

  • Moreutils – 更有用的 Unix 实用程序的集合

现在,您可以在输出的每一行中显示时间戳 ping 命令如下:

$ ping -c 5 ostechnix.com | ts

示例输出:

Jan 28 16:38:40 PING ostechnix.com(2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886)) 56 data bytes Jan 28 16:38:40 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=1 ttl=57 time=76.7 ms Jan 28 16:38:41 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=2 ttl=57 time=93.2 ms Jan 28 16:38:42 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=3 ttl=57 time=84.8 ms Jan 28 16:38:43 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=4 ttl=57 time=84.3 ms Jan 28 16:38:44 64 bytes from 2606:4700:20::ac43:4886 (2606:4700:20::ac43:4886): icmp_seq=5 ttl=57 time=108 ms Jan 28 16:38:44  Jan 28 16:38:44 --- ostechnix.com ping statistics --- Jan 28 16:38:44 5 packets transmitted, 5 received, 0% packet loss, time 4006ms Jan 28 16:38:44 rtt min/avg/max/mdev = 76.718/89.390/107.965/10.646 ms
使用 ts 命令在 Ping 命令输出中启用时间戳

您是否注意到每行开头的时间戳? 是的,它们是时间戳,现在很容易理解。 不只是 ping 命令, ts 命令可以显示任何命令输出的时间戳。

希望这可以帮助。

相关阅读:

  • 使用 Gping 以图形格式显示 Ping 命令输出
  • Prettyping – 使 Ping 命令的输出更漂亮、更易于阅读
  • 如何在 Linux 中一次 Ping 多个主机
  • Ping 多个服务器并在类似顶部的文本 UI 中显示输出

LinuxLinux基础Linux命令Linux howtoLinux网络Linux提示Ping命令时间戳