• Welcome to LiuJason's Blog!

利用scp测试两台Linux服务器之间传输速度的脚本

Linux笔记 Jason 5 years ago (2019-11-24) 1630 Views 0 Comments QR code of this page

需要测试看看国内机房和美国机房之间传输文件的速度,找到如下脚本

#!/bin/bash
# scp-speed-test.sh
#
# Usage:
#   ./scp-speed-test.sh user@hostname [test file size in MBs]
#
#############################################################

ssh_server=$1
test_file=".scp-test-file"

# Optional: user specified test file size in MBs
if test -z "$2"
then
  # default size is 10MB
  test_size="10"
else
  test_size=$2
fi


# generate a file of all zeros
echo "Generating $test_size MB test file..."
dd if=/dev/zero of=$test_file bs=$(echo "$test_size*1024*1024" | bc) \
  count=1 &> /dev/null
# upload test
echo "Testing upload to $ssh_server..."
up_speed=$(scp -v $test_file $ssh_server:$test_file 2>&1 | \
  grep "Bytes per second" | \
  sed "s/^[^0-9]*\([0-9.]*\)[^0-9]*\([0-9.]*\).*$/\1/g")
up_speed=$(echo "($up_speed/1000000)" | bc)

# download test
echo "Testing download from $ssh_server..."
down_speed=$(scp -v $ssh_server:$test_file $test_file 2>&1 | \
  grep "Bytes per second" | \
  sed "s/^[^0-9]*\([0-9.]*\)[^0-9]*\([0-9.]*\).*$/\2/g")
down_speed=$(echo "($down_speed/1000000)" | bc)

# clean up
echo "Removing test file on $ssh_server..."
ssh $ssh_server "rm $test_file"
echo "Removing test file locally..."
rm $test_file


# print result
echo ""
echo "Upload speed:   $up_speed mbps"
echo "Download speed: $down_speed mbps"

This article is under CC BY-NC-SA 4.0 license.
Please quote the original link:https://www.liujason.com/article/395.html
Like (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址