我正在尝试查找通过 SSH 发送的命令的时间延迟。
我的意思是客户端发送命令的时间与服务器接收命令的时间之间的差值。有什么方法可以计算吗?
任何建议都将受到赞赏。
答案1
我能想到的最简单的方法是
$ date; ssh user@server date
Fri May 2 13:45:28 EEST 2014
Fri May 2 13:45:30 EEST 2014
第一个命令date
将打印出系统的当前日期/时间。第二个命令将通过 ssh ( ssh user@server
) 连接到您的服务器并date
在服务器上运行命令。假设客户端和服务器都同步到同一个 NTP 服务器,因此时间相同,这样您就可以看到时差。请注意,这不会 100% 准确,因为启动命令会导致微小的延迟,ssh
但我们谈论的是毫秒,所以我怀疑这不会产生任何影响。
如果您需要更高的精度,请使用类似这样的方法来显示纳秒:
$ date +%T:%N; ssh user@server date +%T:%N
13:47:21:739912080
13:47:23:774238647
ssh
您还可以使用( )的详细标志-v
来报告传输速度。这仅考虑时间后连接已经建立,并且首先不需要连接所需的开销:
$ ssh -v user@server exit 2>&1 | grep second
Transferred: sent 3272, received 1920 bytes, in 0.5 seconds
Bytes per second: sent 6556.2, received 3847.1
上面的命令连接到服务器,然后简单地运行exit
即可再次退出连接。2>&1
将标准错误重定向到标准输出,这使我们能够grep
“第二次”获取统计数据。