Refactoring: use functions for repeatedly used commands
This commit is contained in:
parent
8fdffdd9f6
commit
8ba7f40568
75
nench.sh
75
nench.sh
@ -32,6 +32,28 @@ finish()
|
|||||||
# interrupted while dd is running
|
# interrupted while dd is running
|
||||||
trap finish EXIT INT TERM
|
trap finish EXIT INT TERM
|
||||||
|
|
||||||
|
command_benchmark()
|
||||||
|
{
|
||||||
|
if [ "$1" = "-q" ]
|
||||||
|
then
|
||||||
|
QUIET=1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command_exists "$1"
|
||||||
|
then
|
||||||
|
time dd if=/dev/zero bs=1M count=500 2> /dev/null | \
|
||||||
|
"$@" > /dev/null
|
||||||
|
else
|
||||||
|
if [ "$QUIET" -ne 1 ]
|
||||||
|
then
|
||||||
|
unset QUIET
|
||||||
|
printf '[command `%s` not found]\n' "$1"
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
dd_benchmark()
|
dd_benchmark()
|
||||||
{
|
{
|
||||||
# returns IO speed in B/s
|
# returns IO speed in B/s
|
||||||
@ -56,6 +78,11 @@ dd_benchmark()
|
|||||||
rm -f test_$$
|
rm -f test_$$
|
||||||
}
|
}
|
||||||
|
|
||||||
|
download_benchmark()
|
||||||
|
{
|
||||||
|
curl --max-time 10 -so /dev/null -w '%{speed_download}\n' "$@"
|
||||||
|
}
|
||||||
|
|
||||||
if ! command_exists curl
|
if ! command_exists curl
|
||||||
then
|
then
|
||||||
printf '%s\n' 'This script requires curl, but it could not be found.' 1>&2
|
printf '%s\n' 'This script requires curl, but it could not be found.' 1>&2
|
||||||
@ -103,37 +130,13 @@ printf '\n'
|
|||||||
export TIMEFORMAT='%3R seconds'
|
export TIMEFORMAT='%3R seconds'
|
||||||
|
|
||||||
printf 'CPU: SHA256-hashing 500 MB\n '
|
printf 'CPU: SHA256-hashing 500 MB\n '
|
||||||
if command_exists sha256sum
|
command_benchmark -q sha256sum || command_benchmark -q sha256 || printf '[no SHA256 command found]\n'
|
||||||
then
|
|
||||||
time dd if=/dev/zero bs=1M count=500 2> /dev/null | \
|
|
||||||
sha256sum > /dev/null
|
|
||||||
else
|
|
||||||
if command_exists sha256
|
|
||||||
then
|
|
||||||
time dd if=/dev/zero bs=1M count=500 2> /dev/null | \
|
|
||||||
sha256sum > /dev/null
|
|
||||||
else
|
|
||||||
printf '[no SHA256 command found]\n'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf 'CPU: bzip2-compressing 500 MB\n '
|
printf 'CPU: bzip2-compressing 500 MB\n '
|
||||||
if command_exists bzip2
|
command_benchmark bzip2
|
||||||
then
|
|
||||||
time dd if=/dev/zero bs=1M count=500 2> /dev/null | \
|
|
||||||
bzip2 > /dev/null
|
|
||||||
else
|
|
||||||
printf '[no bzip2 command found]\n'
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf 'CPU: AES-encrypting 500 MB\n '
|
printf 'CPU: AES-encrypting 500 MB\n '
|
||||||
if command_exists openssl
|
command_benchmark openssl enc -e -aes-256-cbc -pass pass:12345678
|
||||||
then
|
|
||||||
time dd if=/dev/zero bs=1M count=500 2> /dev/null | \
|
|
||||||
openssl enc -e -aes-256-cbc -pass pass:12345678 > /dev/null
|
|
||||||
else
|
|
||||||
printf '[no openssl command found]\n'
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf '\n'
|
printf '\n'
|
||||||
|
|
||||||
@ -173,23 +176,23 @@ then
|
|||||||
printf '\n'
|
printf '\n'
|
||||||
|
|
||||||
printf ' Cachefly CDN: '
|
printf ' Cachefly CDN: '
|
||||||
curl -4 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://cachefly.cachefly.net/100mb.test | \
|
download_benchmark -4 http://cachefly.cachefly.net/100mb.test | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
printf ' Leaseweb (NL): '
|
printf ' Leaseweb (NL): '
|
||||||
curl -4 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://mirror.nl.leaseweb.net/speedtest/100mb.bin | \
|
download_benchmark -4 http://mirror.nl.leaseweb.net/speedtest/100mb.bin | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
printf ' Softlayer DAL (US): '
|
printf ' Softlayer DAL (US): '
|
||||||
curl -4 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://speedtest.dal01.softlayer.com/downloads/test100.zip | \
|
download_benchmark -4 http://speedtest.dal01.softlayer.com/downloads/test100.zip | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
printf ' Online.net (FR): '
|
printf ' Online.net (FR): '
|
||||||
curl -4 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://ping.online.net/100Mo.dat | \
|
download_benchmark -4 http://ping.online.net/100Mo.dat | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
printf ' OVH BHS (CA): '
|
printf ' OVH BHS (CA): '
|
||||||
curl -4 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://proof.ovh.ca/files/100Mio.dat | \
|
download_benchmark -4 http://proof.ovh.ca/files/100Mio.dat | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -206,19 +209,19 @@ then
|
|||||||
printf '\n'
|
printf '\n'
|
||||||
|
|
||||||
printf ' Leaseweb (NL): '
|
printf ' Leaseweb (NL): '
|
||||||
curl -6 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://mirror.nl.leaseweb.net/speedtest/100mb.bin | \
|
download_benchmark -6 http://mirror.nl.leaseweb.net/speedtest/100mb.bin | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
printf ' Softlayer DAL (US): '
|
printf ' Softlayer DAL (US): '
|
||||||
curl -6 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://speedtest.dal01.softlayer.com/downloads/test100.zip | \
|
download_benchmark -6 http://speedtest.dal01.softlayer.com/downloads/test100.zip | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
printf ' Online.net (FR): '
|
printf ' Online.net (FR): '
|
||||||
curl -6 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://ping6.online.net/100Mo.dat | \
|
download_benchmark -6 http://ping6.online.net/100Mo.dat | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
printf ' OVH BHS (CA): '
|
printf ' OVH BHS (CA): '
|
||||||
curl -6 --max-time 10 -so /dev/null -w '%{speed_download}\n' http://proof.ovh.ca/files/100Mio.dat | \
|
download_benchmark -6 http://proof.ovh.ca/files/100Mio.dat | \
|
||||||
Bps_to_MiBps
|
Bps_to_MiBps
|
||||||
|
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user