Bash 使用netcat以mbit/s为单位输出网络速度
我正在使用netcat piped thorugh pv测量网络速度 服务器ABash 使用netcat以mbit/s为单位输出网络速度,bash,netcat,Bash,Netcat,我正在使用netcat piped thorugh pv测量网络速度 服务器A netcat -l -q -1 -p 1234 | pv > /dev/null 服务器B dd if=/dev/zero bs=10M count=1 | nc -v -n 10.10.10.2 1234 结果在服务器B上返回为 (UNKNOWN) [10.10.10.2] 1234 (?) open 1+0 records in 1+0 records out 10485760 bytes (10 MB
netcat -l -q -1 -p 1234 | pv > /dev/null
服务器B
dd if=/dev/zero bs=10M count=1 | nc -v -n 10.10.10.2 1234
结果在服务器B上返回为
(UNKNOWN) [10.10.10.2] 1234 (?) open
1+0 records in
1+0 records out
10485760 bytes (10 MB) copied, 5.24922 s, 2.0 MB/s
我需要做的是将MB/s转换为Mbit/s,然后在脚本中输出
echo $speed
16 Mbits/sec
此外,我需要netcat始终在服务器A上侦听,并且在传输完成后不关闭。我尝试了-k和-q-1开关,但没有成功。要从MB切换到MB,您需要以MB为单位的数字乘以8。您是否正在尝试找出执行此操作的语法?我会使用
awk
是的,我需要语法来进行此计算您可以使用awk
。假设您将MB数据拉入一个变量。示例speed=“10MB”
。然后你可以做awk`{printf(%.3f\n”),'${speed}*8}'
或者更简单的:speed=10MB
那么你所需要做的就是echo$(${speed/MB}*8))
要从MB变为MB,你需要以兆字节为单位的数字乘以8。你是否在试图找出实现这一点的语法?我会使用awk
是的,我需要语法来进行此计算您可以使用awk
。假设您将MB数据拉入一个变量。示例speed=“10MB”
。然后,您可以执行awk`{printf(%.3f\n”)、'${speed}*8}'
或更简单的操作:speed=10MB
然后只需执行echo$(${speed/MB}*8))