除了往返时间和序列号之外,是否有一个 ping 替换会显示系统的日期/时间?我更喜欢在 Linux 上运行的工具,但如果有一个 cli 工具我可以在 Windows 上运行,那也很好。
有一个用户报告的系统间歇性地暂停。这似乎不会在任何一致的时间发生。我无法让报告用户以足够的特异性来判断它何时发生,以便能够将暂停与任何日志相关联。
其中一位技术人员在主机上运行了一天的 ping。往返时间在某个时间点变得相当长。我试图弄清楚这究竟是什么时候发生的,这样我就可以缩小我应该查看的日志条目的范围,并可能将此暂停与我可能能够收集的其他数据与性能日志、设备日志等相关联。
64 bytes from 10.2.4.241: icmp_seq=1825 ttl=64 time=0.321 ms
64 bytes from 10.2.4.241: icmp_seq=1826 ttl=64 time=0.371 ms
64 bytes from 10.2.4.241: icmp_seq=1827 ttl=64 time=13937.638 ms
64 bytes from 10.2.4.241: icmp_seq=1828 ttl=64 time=12937.526 ms
64 bytes from 10.2.4.241: icmp_seq=1829 ttl=64 time=11937.392 ms
64 bytes from 10.2.4.241: icmp_seq=1830 ttl=64 time=10937.275 ms
...
64 bytes from 10.2.4.241: icmp_seq=1840 ttl=64 time=936.073 ms
64 bytes from 10.2.4.241: icmp_seq=1841 ttl=64 time=0.410 ms
您可以像这样使用 perl 添加时间戳:
这是一个bash解决方案:)
现在,让我们让
date
命令产生更好的输出:干杯!
我们用来定期检查延迟和数据包丢失的“更重”选项是Smokeping。它不仅以更易于阅读的格式为您提供更多信息,而且您还可以执行 HTTP 和 DNS 检查等操作,而不是依赖 ICMP。许多防火墙和路由器会降低 ICMP 的优先级,从而导致错误的延迟测量。
对于 Linux,安装
moreutils
它将为您提供ts
.printf
让我们使用带有格式规范的内置 shell,%(datefmt)T
以避免调用较重的解释器或date
为每一行生成新的进程。与 perl 示例一样,这也可以通过管道连接到 sed 和 awk 来完成。我认为
ts
是最简单的,但我们的服务器上没有。像busybox这样的环境也是如此。如果您的命令缓冲其输出,则可以使用
unbuffer
.