Traffic eines bestimmten WLAN-Netzwerkes loggen.

Ich benutze nun seit mehreren Jahren einen Mac, mit dem ich ausschließlich per WLAN ins Internet gehe, zum arbeiten.

Zu Hause nutze ich meinen WLAN-Router und unterwegs oder in der Arbeit benutze ich meinen Huawei WLAN-UMTS-Router (MIFI).

 

Für meinen Huawei-UMTS-Router habe ich eine “Flat” die nach 5 GB gedrosselt wird.
Lange Rede kurzer Sinn, ich habe nach einer Möglichkeit gesucht, mit der ich den Traffic meines UMTS-Routers loggen kann um immer einen Überblick zu haben wie lang es noch dauert bis die Geschwindigkeit auf ein unerträgliches Maß gedrosselt wird.

Dabei bin ich auf einige Scripts und Programme gestoßen. Das Problem bei diesen war jedoch, dass der Traffic aller WLAN-Netze mit denen ich mich verbunden habe, geloggt wurde und man nicht erkennen konnte wie viel über welches WLAN-NBetz übertragen wurde.

Nun habe ich mich hingesetzt und selber ein kleines Script geschrieben, das den Namen des WLAN-Netzwerkes (SSID), mit dem ich gerade verbunden bin, ausließt. Anschließend frage ich nur ab ob ich gerade mit meinem Huawei-Router verbunden bin. Wenn ich mit diesem verbunden bin, dann wird das Programm TrafficBot, das ich im Apple Store für ein paar Euro gekauft habe, gestartet. Wenn ich nun das WLAN-Netzwerk wechsle, wird geprüft ob das Programm TrafficBot läuft und gegebenenfalls beendet.
Wer sich für dieses Programm interessiert, schaut direkt im Apple Store oder auf http://admk.zzl.org/.
Das Script wird durch einen Cronjob alle 5 Minuten aufgerufen. Ich denke das dieses Intervall reicht um den Traffic einigermaßen genau loggen zu können.
Hier nun das Shell-Script das ich LocateWlanAndConnect.sh genannt habe.
Dieses Script habe ich in meiner Dropbox im Ordner “Scripts/Internet” abgelegt und mit “chmod +x LocateWlanAndConnect.sh” ausführbar gemacht.

#!/bin/sh 

#SSID des Routers, mit dem man aktuell verbunden ist, ermitteln.
currentSSID=$(/System/Library/PrivateFrameworks/ Apple80211.framework/ Versions/A/Resources/airport -I | grep -w SSID | sed s/' *SSID: '//)

#Wenn der Name des Routers, mit dem man aktuell verbunden ist, "huawei_nefilim3006" ist, dann TrafficBot starten
if [ $currentSSID == "huawei_nefilim3006" ]; then 

#Wenn TrafficBot bereits läuft
if ps aux | grep '[/]TrafficBot' then echo "" else 

#Trafficbot läuft noch nicht also starten
/Applications/TrafficBot.app/Contents/MacOS/TrafficBot fi
else if ps aux | grep '[/]TrafficBot' then killall TrafficBot fi fi exit 0

Anschließend habe ich einen Cronjob angelegt der selbstständig alle X Minuten das Script aufruft. Um ein Shellscript anzulegen oder zu bearbeiten kann man wie folgt vorgehen. Starten Sie das Terminal und geben Sie crontab -e ein. Der Standard-Editor, in meinem Fall vi wird gestartet und die Crontab wird aufgerufen. Drücken Sie nun die Taste i um in den Einfügemodus zu gelangen und geben Sie folgende Zeile ein!

* * * * * /Users/Username/Dropbox/Scripts/LocateWlanAndConnect.sh

Bedeutung:
Der erse Stern bedeutet das der Befehl jede Minute ausgeführt wird.
MINUTE = 0-59,
STUNDE = 0 – 23,
TAG = 1 – 31,
MONAT = 1 – 12 oder Jan, Feb, Mar (englische Bezeichnet),
WOCHENTAG = 0 – 6, wobei die 0 für den Sonntag steht oder Sun, Mon, Tue
BEFEHL = Wird ausgeführt.
Alles was danach kommt wird als Argument dem Befehl übergeben.

Wenn Sie die Zeile eingegeben und an Ihre Bedürfnisse angepasst haben, drücken Sie die Taste esc und anschließend :w zum speichern und dann :q zum beenden.

Einen weiteren und umfangreicheren Artikel zu Cronjobs finden Sie bei DrWeb.de oder auf SUCKUP.de

 

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast. nefilim3006 ist auch bei Google+ vertreten

Ein Kommentar zu “Traffic eines bestimmten WLAN-Netzwerkes loggen.

  1. Pingback: Wir basteln uns einen Arduino gMail Notifier