Last active
December 7, 2025 19:22
-
-
Save patmandenver/fe5648c6faad8f49ef8dd705a509bb7f to your computer and use it in GitHub Desktop.
scp speed test between servers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Instead of uploading files, why not use dd to send junk data?
Upload
Download