Dokumenten Download Geschwindigkeit prüfen

hier die “dirty” Variante als Classic Check

Code

`#!/usr/bin/bash

#variables
user=
password=
url="/"
times=1
timeout=10
warning=500
critical=2000

#check which threshold was reached
function checkTime() {
if [ $1 -gt $critical ]; then
echo -n “CRITICAL”
elif [ $1 -gt $warning ]; then
echo -n “WARNING”
else
echo -n “OK”
fi
}

#return code value
function getStatus() {
if [ $1 -gt $critical ]; then
retcode=2
elif [ $1 -gt $warning ]; then
retcode=1
else
retcode=0
fi
}

#get options
while getopts “w:c:u:U:P” opt; do
case $opt in
w)
warning=$OPTARG
;;
c)
critical=$OPTARG
;;
u)
url=$OPTARG
;;
U)
user=$OPTARG
;;
P)
password=$OPTARG
;;
*)
usage
exit 3
;;
esac
done

start=$(echo $(($(date +%s%N)/1000000)))
wget -O/dev/null -q --user=$user --password=$password $url
status=$?
end=$(echo $(($(date +%s%N)/1000000)))

#decide output by return code
if [ $status -eq 0 ] ; then
echo " $(checkTime $((end - start))): $((end - start))ms - ${url}|time=$((end - start))ms;${warning};${critical};0;"
getStatus $((end - start))
exit $retcode
else
case $status in
1)
echo " CRITICAL: Generic error code ($status) - ${url}"
;;
2)
echo " CRITICAL: Parse error ($status) - ${url}"
;;
3)
echo " CRITICAL: File I/O error ($status) - ${url}"
;;
4)
echo " CRITICAL: Network failure ($status) - ${url}"
;;
5)
echo " CRITICAL: SSL verification failure ($status) - ${url}"
;;
6)
echo " CRITICAL: Authentication failure ($status) - ${url}"
;;
7)
echo " CRITICAL: Protocol errors ($status) - ${url}"
;;
8)
echo " CRITICAL: Server issued an error response ($status) - ${url}"
;;
*)
echo " UNKNOWN: $status - ${url}"
exit 3
;;
esac
exit 2
fi`