Bandbreitenmessung mit gnuplot
Das Test Tool speedtest-cli ist ein Python Programm, das sehr gut die nutzbare Bandbreite an DSL, Kabel etc messen kann. Es kann daten in csv Form ausgeben, diese kann man direkt in gnuplot anzeigen lassen. Das ganze eignet sich daher einfach und schnell zur Automatisierung. Per cron-job lässt man regelmässig Tests laufen und dann auch die grafische Aufbereitung.
#!/usr/bin/gnuplot set datafile separator "," EINGABE1 = "speedtest.csv" AUSGABE1 = "speedtest.pdf" set terminal pdf size 11.6929,8.267 # Das ist A4 quer set output AUSGABE1 #set decimalsign locale "de_DE.UTF-8" set xdata time # X-Achse ist ein Zeitformat set timefmt "%Y-%m-%dT%H:%M:%S" # Format beim einlesen der Daten set format x "%H:%M" # Nur die Uhrzeit, also die Tageszeiten - Datum wird ignoriert set key center top set size 0.95,0.95 set origin 0.03,0.03 set mxtics 4 set style line 51 lc rgb 'black' dt 3 linetype 1 set style line 52 lc rgb 'gray' dt 3 linetype 1 set ytics tc rgb 'purple' set y2tics tc rgb 'green' set grid xtics ytics mxtics mytics ls 51, ls 52 set title "Speedtest.net Bandbreitenmessung des Internet-Anschlusses" font "(,18)" tc rgb "red" set xlabel "Tageszeit (UTC)" set ylabel "Download-Bandbreite in Mbit/s" tc rgb 'purple' set y2label "Upload-Bandbreite in Mb/s" tc rgb 'green' # Ränder für die Blattaufteilung TMARGIN = "set tmargin at screen 0.91; set bmargin at screen 0.55" BMARGIN = "set tmargin at screen 0.45; set bmargin at screen 0.09" LMARGIN = "set lmargin at screen 0.08; set rmargin at screen 0.45" RMARGIN = "set lmargin at screen 0.55; set rmargin at screen 0.92" AMARGIN = "set lmargin at screen 0.08; set rmargin at screen 0.92" plot \ EINGABE1 using 4:($7/1024/1024) with points title "nachher down" axes x1y1 lc rgb 'purple' pointtype 6 pointsize 1, \ EINGABE1 using 4:($8/1024/1024) with points title "nachher up" axes x1y2 lc rgb 'green' pointtype 6 pointsize 1 set logscale y unset y2tics unset y2label set ytics add(20 20,30 30, 40 40, 50 50, 60 60) plot \ EINGABE1 using 4:6 with points title "nachher ping time" axes x1y1 lc rgb 'green' pointtype 6 pointsize 1, \
#!/bin/bash # OUT1=speedtest.csv INC=speedtest.inc cat > $INC <<EOF TARGET="$TARGET" DATE="$(date -Is)" EOF cp /var/log/speedtest speedtest.csv ./speedtest.gnuplot