• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[ gelöst ] Hilfe - kann nicht progr - Script für Traffic

adda

Member
Nachdem mich Programme wie iptraf-ng, wireshark (und viele andere) nicht zufriedengestellt haben,
fand ich das nachstehend (auszugsweise) wiedergegebenen Script zur Kontrolle von Datenverkehr.
Ich habe ihm den Namen "traffic-wlan" gegeben. Dies vorausgeschickt suche ich jetzt hier Hilfe,
denn ich kann nicht programmieren.



Code:
Script : traffic-wlan
===============

#! /bin/bash
#
#


#! /bin/bash
#
#
# Voreinstellungen
#
# RX - Empfangene Bytes
# TX - Versendete Bytes
#
#
IF=wlan0 		# Netzwerkinterface
FILE=/var/log/rx.txt 	# Datei für Datenablage
INTERVAL=300 	# Intervall für Abfrage
#
# Prog ;))
#
while true ; do
TIME=`date +%Y-%m-%d\ %H:%M`
TRAF=`ifconfig wlan0 | grep RX\ bytes`
echo $TIME $TRAF >> $FILE
sleep $INTERVAL ;
done
#
#

Code:
Das Script funktioniert wie gewünscht und schreibt in  /var/log/rx.txt wie folgt:

2012-04-03 18:14 RX bytes:35755311 (34.0 Mb) TX bytes:1135082 (1.0 Mb)
2012-04-03 18:19 RX bytes:35761995 (34.1 Mb) TX bytes:1135082 (1.0 Mb)
2012-04-03 18:24 RX bytes:35767389 (34.1 Mb) TX bytes:1135082 (1.0 Mb)
2012-04-03 18:29 RX bytes:35782380 (34.1 Mb) TX bytes:1135082 (1.0 Mb)
2012-04-03 18:34 RX bytes:35787774 (34.1 Mb) TX bytes:1135278 (1.0 Mb)

Wo wird so ein Script richtig gespeichert?
(Ich habe das Script in /root/.kde4/Autostart eingefügt)

Wenn ich das Script auf der Konsole starte, werden nach "IF=wlan0"
die Dateien von /root aufgelistet. Danach geht es weiter mit "IF=wlan0"
Ist das in Ordnung, oder sollte da was am Script geändert werden?

Außerdem möchte ich - wenn möglich - folgendes einfügen oder ändern:

Stop-Befehl, um das Script zu beenden
Start-Befehl, um das Script neu zustarten
(In beiden Fällen, ohne daß die Angaben in /var/log/rx.txt gelöscht werden.)

Aufzeichnungen in /var/log/rx.txt nach 30/31 Kalendertagen (monatlich laut
Angabe des Anbieters) unterbrechen und neu beginnen (ohne Daten zu löschen)

Statt "IF=wlan0" (oder in Ergänzung von wlan0) würde ich lieber IP-Adressen
scannen, weil mit wlan0 wohl nur mein PC erfaßt wird,
aber nicht der Router und der Windows-PC (im gleichen Netzwerk)

Die IP-Adressen lauten 192.168.2.1, 192.168.2.100 und 192.168.2.101
Auf der Konsole meldet das Script bei Anwendung der IP-Adressen:
"Fehler beim Auslesen : Gerät nicht gefunden"

Ersatzweise gefragt, wie kann ich das Script auch mit Windows-PC nutzen?

In dem Zusammenhang - hier im Forum gibt es von muck19 einen Auszug
(2 Zeilen) aus einem unvollendet gebliebenen Script, der wie folgt lautet:

Code:
downcurrent=$	(/sbin/ifconfig $device | grep "RX bytes:" | cut -d ":" -f2 | cut -d " " -f1)
upcurrent=$(/sbin/ifconfig $device | grep "TX bytes:" | cut -d ":" -f3 | cut -d " " -f1)

Kann das evtl beim Auslesen von IP-Adressen helfen?


(übrigens der ursprüngliche Programmierer des obigen Scrpts
wurde von mir informiert. Er ist am Script nicht mehr interessiert)
Auch muck19 hat sich hier im Forum erklärt - kein Problem.


Vielen Dank für jede Hilfe auf einem Gebiet, das ich nie gelernt habe.

Beste Grüße

Bernd

adda
 
OP
A

adda

Member
In jedem Forum ist das irgendwie anders. Jetzt habe ich Quote genommen, weil ich das schon mal gesehen habe
Hoffentlich stört das nicht, weil es kein code]-Tag ist (Oder was ist das code]-Tag?

Ich habe einfach auf Verdacht "Quote" gegen "Code" ausgetauscht. Sieht so aus, als wäre es richtig, oder?


adda
 

abgdf

Guru
Die Tags sind jetzt ok so.

Ansonsten schreibe ich zwar gern Skripte, kenne mich mit dem Netzwerkkram aber leider nicht aus.
 

framp

Moderator
Teammitglied
adda schrieb:
...
Code:
Das Script funktioniert wie gewünscht und schreibt in  /var/log/rx.txt wie folgt:

2012-04-03 18:14 RX bytes:35755311 (34.0 Mb) TX bytes:1135082 (1.0 Mb)
2012-04-03 18:19 RX bytes:35761995 (34.1 Mb) TX bytes:1135082 (1.0 Mb)
2012-04-03 18:24 RX bytes:35767389 (34.1 Mb) TX bytes:1135082 (1.0 Mb)
2012-04-03 18:29 RX bytes:35782380 (34.1 Mb) TX bytes:1135082 (1.0 Mb)
2012-04-03 18:34 RX bytes:35787774 (34.1 Mb) TX bytes:1135278 (1.0 Mb)

Wo wird so ein Script richtig gespeichert?
Normalerweise werden Script in /usr/local/bin oder /srocal/s bin abgelegt.
...
(Ich habe das Script in /root/.kde4/Autostart eingefügt) Außerdem möchte ich - wenn möglich - folgendes einfügen oder ändern:

Stop-Befehl, um das Script zu beenden
Start-Befehl, um das Script neu zustarten
(In beiden Fällen, ohne daß die Angaben in /var/log/rx.txt gelöscht werden.)
Zum Stoppen reicht ctrl-c und zum Staretn wieder den Scriptnamen in der Konsole eingeben. Da >> beim Schreiben der Daten benutzt wird wird der alte Inhalt nicht geloescht.
...Aufzeichnungen in /var/log/rx.txt nach 30/31 Kalendertagen (monatlich laut
Angabe des Anbieters) unterbrechen und neu beginnen (ohne Daten zu löschen)
Hm ... so wie mir scheint willst Du eigentlich Deinen Traffic messen damit Du weisst welche Kosten bei Deinem Anbieten entstehen, weil Du kein FlatRate hast.
...Statt "IF=wlan0" (oder in Ergänzung von wlan0) würde ich lieber IP-Adressen
scannen, weil mit wlan0 wohl nur mein PC erfaßt wird,
aber nicht der Router und der Windows-PC (im gleichen Netzwerk)

Die IP-Adressen lauten 192.168.2.1, 192.168.2.100 und 192.168.2.101
Auf der Konsole meldet das Script bei Anwendung der IP-Adressen:
"Fehler beim Auslesen : Gerät nicht gefunden"
ifconfig kann nur mit einem Interface arbeiten. Eine IP Adresse kannst Du da nicht angeben
...Ersatzweise gefragt, wie kann ich das Script auch mit Windows-PC nutzen?
Das duerfte mit cygwin auch unter Windows laufen.
...In dem Zusammenhang - hier im Forum gibt es von muck19 einen Auszug
(2 Zeilen) aus einem unvollendet gebliebenen Script, der wie folgt lautet:

Code:
downcurrent=$	(/sbin/ifconfig $device | grep "RX bytes:" | cut -d ":" -f2 | cut -d " " -f1)
upcurrent=$(/sbin/ifconfig $device | grep "TX bytes:" | cut -d ":" -f3 | cut -d " " -f1)

Kann das evtl beim Auslesen von IP-Adressen helfen?
Nein, da ifconfig nicht mit IPs arebieten kann. Der Unterschied zum obigen Script ist der, dass die Info bzgl Xmit und RCV Bytes extrahiert wird waerend oben die gesamte Zeile von ifconfig angezeigt wird.
 
OP
A

adda

Member
Vielen Dank für die Infos. Mußte jetzt auch noch feststellen, daß das Script oben zwar Daten ausspuckt aber
nach jedem Neustart von vorne anfängt, ohne irgendwas zu speichern für z.B. 30 Tage Google zeigt zwar immer
wieder angebliche "Counter" an, Zugang jedoch nur mit Registrierung, die im nirwana landet (Facebook uam )
iptraf und wireshark speichern ja auch nix. Ich werde deshalb das Thema wirklich aufgeben, zumal bei mir
sowieso nur unbedeutende Daten zu speichern sind.
Bin gespannt, wann openSUSE mal was vernünftiges als counter bringt (Bei windows schon lange kein Problem.

adda
 
Oben