41 lines
925 B
Bash
Executable File
41 lines
925 B
Bash
Executable File
#! /bin/bash
|
|
|
|
declare -i samples=100
|
|
declare -a servers=('8.8.8.8')
|
|
declare -i highestloss=0
|
|
|
|
declare -i alltimehighest=0
|
|
declare -i alltimelowest=100
|
|
declare -i iterations=1
|
|
|
|
while :; do
|
|
highestloss=0
|
|
for server in "${servers[@]}"; do
|
|
stats="$(ping "$server" -c "$samples" | tail -n 2 | head -n 1)"
|
|
losspercent="$(echo "$stats" | cut -f6 -d ' ')"
|
|
loss="${losspercent%\%}"
|
|
[ -z "$loss" ] && continue
|
|
if (( loss > highestloss )); then
|
|
highestloss="$loss"
|
|
fi
|
|
done
|
|
color="\e[34m"
|
|
if (( highestloss > 0 )); then
|
|
color="\e[31m"
|
|
fi
|
|
if (( highestloss > alltimehighest )); then
|
|
alltimehighest="$highestloss"
|
|
fi
|
|
if (( highestloss < alltimelowest )); then
|
|
alltimelowest="$highestloss"
|
|
fi
|
|
printf "\\rCurrent loss: $color%-3.3s\e[0m - \e[33m%-4.4s \e[34m%-4.4s \e[0m%-4.4s" \
|
|
"$highestloss" \
|
|
"$alltimehighest" \
|
|
"$alltimelowest" \
|
|
"$iterations"
|
|
iterations="$(( iterations + 1 ))"
|
|
sleep 1
|
|
done
|
|
|