H
hennerich
Jungspund
Hallo Community,
ich möchte gern den Traffic meines Linksys Routers per Shell Script auslesen und in eine Datei schreiben. Leider ist mein Router (WRT54G3G) nicht in der Lage, gesondert Accountinginformationen auszulesen.
Daher habe ich von einem User aus dem Onlinekosten Forum folgendes Script gefunden:
Ich beabsichtige dann, einen ähnlich gearteten Code auf meiner Dreambox (Linux Receiver) laufen zu lassen (der Receiver läuft eh den ganzen Tag und so muss ich keinen PC anlassen).
Da ich aber kein Lynx oder einen anderen Textbrowser darauf installiert habe, möchte ich das ganze mit wget machen.
Dazu habe ich folgende Idee (von einem anderen User) bekommen:
Die Wireless_Wan.asp Datei sieht folgendermaßen aus (siehe Anhang).
Nun gibt mir aber der obige Code immer nur das:
RX = 2.45 MbytesTX = 11.44 Mbytes
zurück.
Ich würden gern nur die Werte für RX und TX haben. Außerdem wäre es schön, sobald die Session Time kleiner als die des letzten Durchlaufes ist, die beiden Werte (letzter Durchlauf und der aktuelle Wert) miteinander zu addieren. So könnte ich quasi die Verbrauchssumme erstellen. Leider zeigt mir der Router immer die Trafficwerte der aktuellen Sitzung an.
Habt ihr eine Idee wie ich das bewerkstelligen könnte?
Vielen Dank und frohes Neues
Henri
ich möchte gern den Traffic meines Linksys Routers per Shell Script auslesen und in eine Datei schreiben. Leider ist mein Router (WRT54G3G) nicht in der Lage, gesondert Accountinginformationen auszulesen.
Daher habe ich von einem User aus dem Onlinekosten Forum folgendes Script gefunden:
Code:
#!/bin/bash
#
# functionale: monitors and logs patterns from the http admin gui
# requires: lynx http browser
# v0.1
# configuration
admin_username=admin
admin_password=geheim
url_scheme=http
router_ip=192.168.1.1
context_url=Wireless_Wan.asp
rx_pattern=RX
tx_pattern=TX
log_interval=60
log_file=/var/log/wrt54g3g_volume_log
lynx_executable="/usr/bin/lynx"
# unconditional looping
while [ true ]; do
sleep $log_interval
date >> $log_file
$lynx_executable -auth=$admin_username:$admin_password -dump $url_scheme://$router_ip/$context_url | grep $rx_pattern >> $log_file
$lynx_executable -auth=$admin_username:$admin_password -dump $url_scheme://$router_ip/$context_url | grep $tx_pattern >> $log_file
done
Da ich aber kein Lynx oder einen anderen Textbrowser darauf installiert habe, möchte ich das ganze mit wget machen.
Dazu habe ich folgende Idee (von einem anderen User) bekommen:
Code:
wget http://user:password@router_ip/Wireless_Wan.asp
grep TX Wireless_Wan.asp | sed 's/<[^>]*>//g' >> $log_file
grep RX Wireless_Wan.asp | sed 's/<[^>]*>//g' >> $log_file
rm Wireless_Wan.asp
Nun gibt mir aber der obige Code immer nur das:
RX = 2.45 MbytesTX = 11.44 Mbytes
zurück.
Ich würden gern nur die Werte für RX und TX haben. Außerdem wäre es schön, sobald die Session Time kleiner als die des letzten Durchlaufes ist, die beiden Werte (letzter Durchlauf und der aktuelle Wert) miteinander zu addieren. So könnte ich quasi die Verbrauchssumme erstellen. Leider zeigt mir der Router immer die Trafficwerte der aktuellen Sitzung an.
Habt ihr eine Idee wie ich das bewerkstelligen könnte?
Vielen Dank und frohes Neues
Henri