如何在Mininet中通过ping命令获取时间戳?
嘿,我来帮你搞定在Mininet里让ping显示时间戳的需求!默认ping确实不会输出时间戳,但咱们有两种简单的方法可以实现:
方法1:使用Ping自带的-D参数
Ping本身就有一个内置参数可以添加时间戳,直接在执行ping的时候加上-D就行,它会在每一行输出的开头加上自Unix纪元以来的时间戳(精确到微秒)。
在Mininet终端里执行:
mininet> h1 ping -D h2
输出示例会变成这样:
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
[1699999999.123456] 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=1.17 ms
[1700000000.124567] 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=1.48 ms
[1700000001.125678] 64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.426 ms
这个方法最直接,不需要额外安装工具。
方法2:用ts命令生成易读的日期时间戳
如果你想要更直观的日期时间格式(比如YYYY-MM-DD HH:MM:SS),可以用ts命令来给ping的输出加上时间戳。不过首先得在Mininet的节点里安装moreutils包(因为ts属于这个包):
先在节点里安装:
mininet> h1 apt update && h1 apt install -y moreutils
然后执行带时间戳的ping:
mininet> h1 ping h2 | ts
输出示例会像这样:
Nov 14 10:00:00 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
Nov 14 10:00:01 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=1.17 ms
Nov 14 10:00:02 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=1.48 ms
这种格式更适合快速直观地看到每个ping响应的具体时间点。
内容的提问来源于stack exchange,提问作者user9587142




