一个测试下载速度的shell脚本
程序员文章站
2023-01-08 16:51:37
在linux下用shell来测试下载度,代码如下:复制代码 代码如下:#!/bin/bash#date:20140210#used for test server down...
在linux下用shell来测试下载度,代码如下:
复制代码 代码如下:
#!/bin/bash
#date:20140210
#used for test server download speed
r_host="188.18.28.19"
r_dir="/home/test0208/tmp"
r_file="$r_dir/ddfile2m"
l_dir="/home/yangjuying/tmp"
l_file="$l_dir/ddfile2m"
l_log="$l_dir/182.18.28.19-download.log"
echo "----------$(date +%y%m%d-%h%m%s)----------" >>$l_log
start_t="$(date +%s)"
scp -p22 -o connecttimeout=10 -o gssapiauthentication=no test0208@$r_host:$r_file $l_file >>$l_log 2>&1
rc="$?"
if [ "$rc" -eq 0 ];then
stop_t="$(date +%s)"
file_stat="$(stat $l_file)"
file_ctime="$(echo "$file_stat" | awk -f "[ .]" 'fnr==5{print $2,$3}' | sed 's/[- :]/ /g')"
file_ct="$(awk -v t="$file_ctime" 'begin{print mktime(t)}')"
file_size="$(du -sm $l_file | cut -f1)"
rm "$l_file"
else
stop_t=""
fi
if [ -n "$stop_t" ];then
connect_t=$(($file_ct-$start_t))
transfer_t=$(($stop_t-$file_ct))
all_t=$(($stop_t-$start_t))
speed="$(echo "scale=3;$file_size/$transfer_t" | bc)"
echo "size:${file_size}mb, all_time:$all_t, connect_time:$connect_t, transfer_time:$transfer_t, speed:${speed}mb/s" >>$l_log
else
echo "scp error!" >>$l_log
fi
#date:20140210
#used for test server download speed
r_host="188.18.28.19"
r_dir="/home/test0208/tmp"
r_file="$r_dir/ddfile2m"
l_dir="/home/yangjuying/tmp"
l_file="$l_dir/ddfile2m"
l_log="$l_dir/182.18.28.19-download.log"
echo "----------$(date +%y%m%d-%h%m%s)----------" >>$l_log
start_t="$(date +%s)"
scp -p22 -o connecttimeout=10 -o gssapiauthentication=no test0208@$r_host:$r_file $l_file >>$l_log 2>&1
rc="$?"
if [ "$rc" -eq 0 ];then
stop_t="$(date +%s)"
file_stat="$(stat $l_file)"
file_ctime="$(echo "$file_stat" | awk -f "[ .]" 'fnr==5{print $2,$3}' | sed 's/[- :]/ /g')"
file_ct="$(awk -v t="$file_ctime" 'begin{print mktime(t)}')"
file_size="$(du -sm $l_file | cut -f1)"
rm "$l_file"
else
stop_t=""
fi
if [ -n "$stop_t" ];then
connect_t=$(($file_ct-$start_t))
transfer_t=$(($stop_t-$file_ct))
all_t=$(($stop_t-$start_t))
speed="$(echo "scale=3;$file_size/$transfer_t" | bc)"
echo "size:${file_size}mb, all_time:$all_t, connect_time:$connect_t, transfer_time:$transfer_t, speed:${speed}mb/s" >>$l_log
else
echo "scp error!" >>$l_log
fi
上一篇: 脚本自动添加crontab示例
下一篇: 在Shell命令行处理JSON数据的方法