blob: 6db5dc51c0581151ae59f34cda86d5cf4b57b003 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#!/bin/sh
set -e
[ -n "$DEBUG" ] && set -x
if [ "$1" = "-h" ] || [ "$1" = "help" ]; then
printf "usage: %s\n" "$(basename "$0")"
printf "use iperf3 to benchmark connection throughput\n"
printf "\n"
exit 2
fi
SERVER=inazuma.moji.moe
PORT=33000
run_server() {
printf "starting server... => %s:%s\n" "${SERVER}" "${PORT}" >&2
ssh ${SERVER} -- iperf3 -s -D -1 -p ${PORT}
# sleep 3
}
run_client() {
printf "measuring...\n" >&2
case $1 in
dl) iperf3 -J -c ${SERVER} -p ${PORT} -R ;;
ul) iperf3 -J -c ${SERVER} -p ${PORT} ;;
esac
}
place() {
iplink=$(ip link | grep UP | cut -d' ' -f2 | tr -d ':' | grep -v lo | head -n1)
case "${iplink}" in
wlan*) iwctl station "${iplink}" show | grep network | xargs | cut -d' ' -f3- ;;
*) printf "?\n" ;;
esac
}
if [ -n "$MANUAL" ]; then
run_server
set -x
exec iperf3 -c ${SERVER} -p ${PORT} "$@"
fi
# measure download
run_server
bps_dl=$(run_client dl |
jq -r '.end.sum_received.bits_per_second' |
awk '{print $0/1000000}')
printf "DL: %.2f\n" "${bps_dl}" >&2
# measure upload
run_server
bps_ul=$(iperf3 -J -c ${SERVER} -p ${PORT} |
jq -r '.end.sum_sent.bits_per_second' |
awk '{print $0/1000000}')
printf "UL: %.2f\n" "${bps_ul}" >&2
# print results
printf "%s,COUNTRY,CITY,%s,%.2f,%.2f,LAT,LON\n" \
"$(date +%d/%m/%y)" \
"$(place)" \
"${bps_dl}" \
"${bps_ul}"
|