Aktuellen Traffic anzeigen

fx123

New Member
Hallo,

ich suche ein Tool, welches mir den aktuellen Traffic eines Server anzeigt. Ich benötige allerdings keine detaillierte Ausgabe, sondern einfach nur den momentanen Traffic z.B. in Byte / KB / MB whatever...

Also sowas wie:
# befehl -xyz
185.90 kBit/s

Das Ganze benötige ich für ein kleines Monitoring-Script, welches remote die Werte bei den einzelnen Servern einsammelt.
Traffic-Monitoring-Tools gibt es ja wie Sand am Meer... allerdings habe ich bisher keines gefunden, welches mir eine solche Ausgabe erzeugt.
 
Lies mit ifconfig den aktuellen Traffic-Zähler aus. Dann kannst du dir über die Zeit selbst berechnen, was drüber lief.
 
instant-Traffic gibt es technisch gesehen nicht. In einem Moment kann entweder nur etwas übertragen werden (volle Auslastung der Anbindung) oder nichts (gar keine). Generell wird also der Traffic je Zeitspannte (zB Megabit je Sekunde - Mbs oder Megabyte je Sekunde - MBs) gemessen.

ifconfig gibt die gesamte Anzahl an Bytes auf einem Interface aus, dies kannst du zB über folgendes extrahieren:
Code:
ifconfig eth1 | grep "TX bytes" | awk '{print $6}' | cut -c 7-
(Falls dein Skript in einer Programmiersprache wie Javascript,Python,Perl,PHP,... geschrieben ist wäre ein regex bedeutend praktischer :D )
 
Der Ansatz ist der richtige, ich würde nur den Overhead von ifconfig sparen und direkt auf dessen Datenquelle zugreifen: /proc/net/dev
 
Hallo,

die Zeitspanne von ifconfig ist mir aber deutlich zu lange. Ich bräuchte etwas viel aktuelleres..... z.B. die letzte Minute oder ähnliches

Nachtrag: Mit vnstat kann ich mir immerhin schonmal die letzte Stunde anzeigen lassen... ein kürzerer Zeitraum wäre aber besser
 
Last edited by a moderator:
ifconfig hat gar keine Zeitspanne, weil es die Summe von übertragenen Daten angibt. Wie groß du die Zeitspanne wählst, liegt allein bei dir in dem du den Abstand zwischen 2 Lese-Aktionen auf ifconfig oder eben /poc/net/dev ausführst, die Differenz errechnest und auf eine Sekunde runter rechnest.

Edit zu deinem Nachtrag:
vnstat kann auch Live-Statistiken. Siehe Manpage oder --help.
 
Nachtrag: Mit vnstat kann ich mir immerhin schonmal die letzte Stunde anzeigen lassen... ein kürzerer Zeitraum wäre aber besser

vnstat -tr -> Durchschnitt für 5 Sekunden
vnstat -tr 2 -> Durchschnitt für 2 Sekunden (kleinste Möglichkeit)
 
Mal schnell gebastelt, sollte zuverlässig funktionieren.
Gibt die Anzahl an Byte je Intervall aus, bei einem Intervall von 1 also Bps

Code:
#!/bin/bash
function getStats {
        /bin/grep $1 /proc/net/dev | /usr/bin/awk '{print $10}'
}


if [ "$1" = "" ]; then
        echo "Usage: ./traffic.sh <DEVICE> <INTERVAL>"
        exit
fi
if [ "$2" = "" ]; then
        Sleepys="1"
else
        Sleepsy=$2
fi

Start=$(getStats $1)
sleep $Sleepsy
End=$(getStats $1)

echo $(($End-$Start))
 
geht mit VNStat supi:

vnstat -i eth0 (anpassen) --live

Damit kannst du Dir auch gleich die Statistiken anzegen lassen

vnstat -d (Day) -m (Monat) -w (Woche)
 
Back
Top