Bash Shell脚本:使用命令Ping传输跃点的速度
创建一个shell脚本,该脚本将计算机和所选IP之间的跃点传输速度关联起来。使用PING命令并以kB/秒表示结果Bash Shell脚本:使用命令Ping传输跃点的速度,bash,shell,unix,ping,cut,Bash,Shell,Unix,Ping,Cut,创建一个shell脚本,该脚本将计算机和所选IP之间的跃点传输速度关联起来。使用PING命令并以kB/秒表示结果 !/bin/bash 我创建了一个临时文件 touch info.txt; 我接第二行命令PING两秒钟后停止 我将结果发布到文件中 ping -t 2 $1 | head -2 | tail -1 > info.txt; rm file.txt; 我以字节为单位 cut -c -2 info.txt; 我要ms cut -c 53-59 info.txt; 现在,
!/bin/bash
我创建了一个临时文件
touch info.txt;
我接第二行命令PING两秒钟后停止
我将结果发布到文件中
ping -t 2 $1 | head -2 | tail -1 > info.txt;
rm file.txt;
我以字节为单位
cut -c -2 info.txt;
我要ms
cut -c 53-59 info.txt;
现在,如何以KB和秒为单位进行转换
显示结果
echo "Result: .....";
我删除了这个文件
ping -t 2 $1 | head -2 | tail -1 > info.txt;
rm file.txt;
你可以做:
bytes=$(cut -c -2 info.txt)
ms=$(cut -c 53-59 info.txt)
echo "KiB: "$(($bytes/1024))
echo "Sec: "$(($ms/1000))
speed=$((1000*$bytes*1000/1024/$ms))
speed=$(echo $speed|sed -r 's/^(.*)(.{3})$/\1.\2/')
echo "Speed: $speed KiB/s"
这当然是考虑到1kib=1024字节,其中KiB通常用于KB。RESULT=$(ping-t2-c2$1 | grep'time='| head-1 | sed's/([0-9][0-9])(time=)((ms)/\1:\3/g')echo“BYTES=${RESULT%:}”
echo“速度=${RESULT}:}”
对于转换部分,您可能需要使用python或perl。在bash中,无法计算小数。谢谢大家!工作 touch info.txt ping-t2$1 | head-2 | tail-1>info.txt 字节=$(cut-c-2info.txt) ms=$(cut-c53-59 info.txt) KB=$(echo“scale=5;$bytes/1024”| bc) 秒=$(回声“标度=5;$ms/1000”| bc) 速度=$(回声“刻度=5;$KB/$Sec”| bc) echo“跳跃速度:$KB/秒” rm info.txt
您应该考虑<代码>字节/MSEC/<代码>与代码> KB/SEC/<代码>相同。