Moin in die Runde,
ich beiße mir derzeit die Zähne an einem kleinen Bash Snippet aus. Ich möchte gerne die Daten unter /proc/net/dev via Bash Skript auslesen und Dinge wie Kb/s oder auch p/s berechnen.
Ich möchte dabei auf keine zusätzlichen Tools zurückgreifen - lediglich Systemeigene Tools sollen genutzt werden.
Abgreifen tue ich die Daten mit:
interfaces="$(awk '/:/ {print $1","$2","$3","$10","$11";"}' /proc/net/dev | tr -d ':' | tr -d '\n')"
sleep 10
interfaces_last="$(awk '/:/ {print $1","$2","$3","$10","$11";"}' /proc/net/dev | tr -d ':' | tr -d '\n')"
Um jetzt z.B. den Durchschnittswert pro Sekunde im Download zu berechnen muss ich ja $2 (interfaces_last) - $2 (interfaces) / 10 rechnen. Gleiches auch bei anderen Werten.
Wenn ich lediglich nur das default Interface berechnen möchte, so stellt dies kein Problem dar.
Allerdings möchte ich gerne die Daten von jedem Interface haben - und da wird es kompliziert da die Anzahl der Interface ja schwanken kann und ich nicht für jede Eventualität ein eigenes "if" schreiben möchte. Ich muss das Ganze also in eine Schleife packen, wobei die Berechnungen stattfinden, um das Ergebnis zu bekommen.
Doch leider fehlt mir hier aktuell etwas der Durchblick wie ich das anstellen kann.
Das Ergebnis stelle ich mir wie folgt vor:
interfacename,traffic_gesamt,upload_durchschnitt,download_durchschnitt,pakete_upload_durchschnitt,pakete_download_durchschnitt;interface2,...
Wenn hier jemand eine gute Idee hat oder ein systemeigenes Tool kennt wäre ich sehr Dankbar.