Ping是一个命令行网络管理工具,几乎所有的操作系统都可以使用,包括嵌入式网络设备。它主要用于测试网络上主机的连接性或可到达性。默认情况下,ping命令不会在其输出中显示时间戳。如果你因为任何原因想用ping命令输出打印时间戳,本教程将告诉你如何操作。
要在ping命令的输出中显示时间戳,只需传递-D标志,如下所示。
$ ping -c 3 -D a5idc.com
从上面的输出中可以看出,ping命令在每一行前都打印了时间戳(unix时间+微秒,如gettimeofday)。
尽管Ping命令有启用时间戳的选项,但输出的时间戳并不那么友好。如果你想以易读的格式显示时间戳,可以使用ts命令,如下节所示。
ts 命令是 moreutils 软件包的一部分。它可以在任何Linux命令的输出中打印出每行开头的时间戳。
要使用 ts 命令,你需要安装 moreutlis 包,如下图所示。
在Linux服务器上安装moreutils
moreutils被打包用于许多Linux发行版,因此您可以使用发行版的程序包管理器进行安装。
在Arch Linux及其衍生版本(例如Antergos和Manjaro Linux)上,运行以下命令来安装moreutils。
$ sudo pacman -S moreutils
在Fedora上:
$ sudo dnf install moreutils
在RHEL,centos和Scientific Linux上:
$ sudo yum install epel-release
$ sudo yum install moreutils
$ sudo apt-get install moreutils
现在,你可以在ping命令的输出中显示每行的时间戳,如下所示。
$ ping -c 5 a5idc.com | ts
你注意到每行开头的时间了吗?是的,它们就是时间戳,现在很容易理解了。不仅仅是ping命令,ts命令可以显示任何命令输出的时间戳。