#!/bin/sh # Auswertung von /root/landal-vergleich.csv (HT gegen VHT am Landal-Client). Aufruf: landal-auswertung [Tage] # Ohne Angabe: alle Daten. Spalten siehe Kopfzeile der CSV (Mbit/s sind dort mal 10, Fehler in Promille). CSV=/root/landal-vergleich.csv DAYS="${1:-0}" [ -f $CSV ] || { echo "keine Daten: $CSV"; exit 1; } SINCE=0; [ "$DAYS" -gt 0 ] && SINCE=$(( $(date +%s) - DAYS * 86400 )) grep -v '^epoch;' $CSV | awk -F';' -v since=$SINCE ' function pr(name, n, hm, vm, hf, vf, hp, vp, vw) { if (n + 0 == 0) return printf "%-22s n=%3d | HT %5.1f Mbit/s F %4.1f%% Ping %4.0f | VHT %5.1f Mbit/s F %4.1f%% Ping %4.0f | VHT schneller in %2.0f%%\n", name, n, hm/n/10, hf/n/10, hp/n, vm/n/10, vf/n/10, vp/n, vw*100/n } $1 >= since { n++; hm+=$14; vm+=$23; hf+=$17; vf+=$26; hp+=$18; vp+=$27; vw+=($23>$14) b=$6; bn[b]++; bhm[b]+=$14; bvm[b]+=$23; bhf[b]+=$17; bvf[b]+=$26; bhp[b]+=$18; bvp[b]+=$27; bvw[b]+=($23>$14) a=$8; an[a]++; ahm[a]+=$14; avm[a]+=$23; ahf[a]+=$17; avf[a]+=$26; ahp[a]+=$18; avp[a]+=$27; avw[a]+=($23>$14) h=$5+0; hn[h]++; hhm[h]+=$14; hvm[h]+=$23; hhf[h]+=$17; hvf[h]+=$26; hhp[h]+=$18; hvp[h]+=$27; hvw[h]+=($23>$14) d=$2; dn[d]++; dhm[d]+=$14; dvm[d]+=$23; dhf[d]+=$17; dvf[d]+=$26; dhp[d]+=$18; dvp[d]+=$27; dvw[d]+=($23>$14) if (!(d in dord)) { dord[d]=++nd; dname[nd]=d } } END { print "=== Gesamt ==="; pr("alle Laeufe", n, hm, vm, hf, vf, hp, vp, vw) print "\n=== nach Tageszeit ===" split("nachts morgens mittags abends", bl, " "); for (i = 1; i <= 4; i++) { b = bl[i]; pr(b, bn[b], bhm[b], bvm[b], bhf[b], bvf[b], bhp[b], bvp[b], bvw[b]) } print "\n=== nach Alarmstatus (scharf/huelle/unscharf, - = Cron) ===" for (a in an) pr(a, an[a], ahm[a], avm[a], ahf[a], avf[a], ahp[a], avp[a], avw[a]) print "\n=== nach Stunde ===" for (h = 0; h < 24; h++) pr(sprintf("%02d Uhr", h), hn[h], hhm[h], hvm[h], hhf[h], hvf[h], hhp[h], hvp[h], hvw[h]) print "\n=== je Tag ===" for (i = 1; i <= nd; i++) { d = dname[i]; pr(d, dn[d], dhm[d], dvm[d], dhf[d], dvf[d], dhp[d], dvp[d], dvw[d]) } }'