Posted: Sun Sep 03, 2006 8:48 Post subject: Bandbreitenverbrauch pro Port per Monat
Hallo Leute,
gibts eine Möglichkeit (evtl. auch per script) rauszufinden, welcher port am WRT wieviel Internet (WAN) - Bandbreite verbraucht hat? Per Monat.
Ich hab 30GB fair use und möchte gerne wissen, wer wieviel verbraucht hat...
LG
G. _________________ Linksys WRT54GL1.1
dd-wrt.v23 SP3 (23/03/07) std
Cable: 8000DL/512UL
2 PC's + 1 Ovislink WMU9000 as AP (no routing) via Ethernet (1WLAN Client on AP)
2 WLAN Clients on WRT54GL (1x Notebook (Intel chipset), 1x PC via Ovislink WL8000PCI).
..bastelt man sich ein wenig Code um diese Ausgabe, dann kann man sich damit einen sehr einfachen Traffic-Monitor bauen.
Code:
while [ 1 ];
do
curr_input_bytes=$(ifconfig $(route | grep default | awk '{print$8}') | grep "bytes" | sed -e 's/.*RX bytes:\([0-9]*\).*/\1/');
curr_output_bytes=$(ifconfig $(route | grep default | awk '{print$8}') | grep "bytes" | sed -e 's/.*TX bytes:\([0-9]*\).*/\1/');
if [ "$old_input_bytes" -eq '' ]; then
old_input_bytes=0;
fi
if [ "$old_output_bytes" -eq '' ]; then
old_output_bytes=0;
fi
let "delta_input_bytes = $curr_input_bytes - $old_input_bytes" ;
let "delta_output_bytes = $curr_output_bytes - $old_output_bytes" ;
let "input_speed = $delta_input_bytes / 60";
let "output_speed = $delta_output_bytes / 60";
old_input_bytes=$curr_input_bytes;
old_output_bytes=$curr_output_bytes;
clear;
echo -e "INPUT:\t\t$curr_input_bytes\tBytes "
echo -e "OUTPUT:\t\t$curr_output_bytes\tBytes"
echo -e "INPUT Speed:\t$input_speed\tBytes/second"
echo -e "OUTPUT Speed:\t$output_speed\tBytes/second"
sleep 60 ;
done;
Anstatt sich das ganze auf der Console anzusehen, kann man es natürlich auch in eine html- Seite schicken.<pr> Man muss nur das Echo umleiten und das Verzeichnis /tmp/www anlegen.
Code:
mkdir /tmp/www
while [ 1 ];
do
curr_input_bytes=$(ifconfig $(route | grep default | awk '{print$8}') | grep "bytes" | sed -e 's/.*RX bytes:\([0-9]*\).*/\1/');
curr_output_bytes=$(ifconfig $(route | grep default | awk '{print$8}') | grep "bytes" | sed -e 's/.*TX bytes:\([0-9]*\).*/\1/');
if [ "$old_input_bytes" -eq '' ]; then
old_input_bytes=0;
fi
if [ "$old_output_bytes" -eq '' ]; then
old_output_bytes=0;
fi
let "delta_input_bytes = $curr_input_bytes - $old_input_bytes" ;
let "delta_output_bytes = $curr_output_bytes - $old_output_bytes" ;
let "input_speed = $delta_input_bytes / 60";
let "output_speed = $delta_output_bytes / 60";
old_input_bytes=$curr_input_bytes;
old_output_bytes=$curr_output_bytes;
echo -e '
<html><body>
<head>
<META HTTP-EQUIV='Refresh' CONTENT='60'>
</head>
<table>
<tr bgcolor=#c1c1c1>
<td></td>
<td>Gesamt<br>[byte]</td>
<td>Geschwindigkeit<br>[byte/sek]</td>
</tr>
<tr>
<td bgcolor=#c1c1c1 >Eingehend</td>
<td>'$curr_input_bytes'</td>
<td>'$input_speed'</td>
</tr>
</tr>
<td bgcolor=#c1c1c1>Ausgehend</td>
<td>'$curr_output_bytes'</td>
<td>'$output_speed'</td>
<tr>
</table>
<body><html>' > /tmp/www/traffic.htm
sleep 60 ;
done;
Wie kann ich dieses Dokument schützen? Ich möchte, dass man es nur anschauen kann, wenn man im Web interface eingeloggt ist. Kann das hier jemand schreiben?
Wenn man dieses Schnipsel nicht traffic.htm sondern traffic.asp nennt, dann sollte der Schutz auch funktionieren.
cya
poste mal nen screenshot wenns klappt _________________ DD-WRT v23 SP2 (09/13/06) special @WHR-G54S =>
DD-WRT v23 SP2 (09/13/06) special @WHR-HP-G54
das scheint der gesamte traffic des routers am wan-port? (oder allen Ports?) seit dem letzten reboot zu sein.
man kann die ports des routers mit snmp traps und externen programmen (auf servern) auslesen, aber das iss mir zuviel aufwand (will keinen server laufen lassen um den traffic aufzuzeichnen - hab auch keinen...)
vielmehr dachte ich an so ein script, das ich von mir aus am Monats-ende laufen lasse und das mir genauso wie dieses hier, dann den traffic von allen (von mir aus einzeln, nach einander) Ports des Routers liefert. (Wenn IP-Adressen auch gehen wär mir das noch lieber - glaub aber nicht, dass das geht)
evtl. kann man dieses script auch entsprechend abändern, hab aber keinen plan wie...
LG
G. _________________ Linksys WRT54GL1.1
dd-wrt.v23 SP3 (23/03/07) std
Cable: 8000DL/512UL
2 PC's + 1 Ovislink WMU9000 as AP (no routing) via Ethernet (1WLAN Client on AP)
2 WLAN Clients on WRT54GL (1x Notebook (Intel chipset), 1x PC via Ovislink WL8000PCI).
niemand? _________________ Linksys WRT54GL1.1
dd-wrt.v23 SP3 (23/03/07) std
Cable: 8000DL/512UL
2 PC's + 1 Ovislink WMU9000 as AP (no routing) via Ethernet (1WLAN Client on AP)
2 WLAN Clients on WRT54GL (1x Notebook (Intel chipset), 1x PC via Ovislink WL8000PCI).
Warum installierst du nicht http://www.hetos.de/bwlog.html?
Da hast du Alles, was du willst.
Allerdings zeigen die neueren Versionen von DD-WRT die Neigung, durch in der Busybox fehlende Routinen (regarless downsizing) den bwlog nicht mehr lauffähig zu halten.
Mit SP1 läuft er, wenn du haserl installierst.
Wie das geht, steht hier irgendwo im Forum.
Bei Interesse kann ch es dir auch posten.
thx
hab mich noch nicht darangemacht das mal zu probieren...
würde das denn mit der sp2 final std nokaid funktionieren, oder geht das wirklich nur mit der sp1??
LG
G. _________________ Linksys WRT54GL1.1
dd-wrt.v23 SP3 (23/03/07) std
Cable: 8000DL/512UL
2 PC's + 1 Ovislink WMU9000 as AP (no routing) via Ethernet (1WLAN Client on AP)
2 WLAN Clients on WRT54GL (1x Notebook (Intel chipset), 1x PC via Ovislink WL8000PCI).
Sollte auch auf SP2 laufen. Allerdings werden ca. 300Kbyte auf der JFFS kaum reichen, um längere Logs zu haben.
Alternative: installieren auf TMP Verzeichnis, und die LOGS auf JFFS bzw. FTP Server ablegen. Dafür müsstest Du BWlog einmal korrekt konfigurieren, und die Konfigs irgendwo speichern, um dann per Skript bei jedem Routerneustart BWlog auf /TMP installieren, Configs austauschen, und freuen.
ich hab vor den router jeden 1. im monat neu zu starten und vorher die logs anzusehen, wer den traffic verursacht hat...
bleiben die logs nach einem router neustart bestehen, wenn ich bwlog default installiere - dh. nicht auf tmp?
ftp-server hab ich keinen... _________________ Linksys WRT54GL1.1
dd-wrt.v23 SP3 (23/03/07) std
Cable: 8000DL/512UL
2 PC's + 1 Ovislink WMU9000 as AP (no routing) via Ethernet (1WLAN Client on AP)
2 WLAN Clients on WRT54GL (1x Notebook (Intel chipset), 1x PC via Ovislink WL8000PCI).
Joined: 08 Aug 2006 Posts: 106 Location: Karlsruhe, Germany
Posted: Sat Sep 16, 2006 20:17 Post subject:
wrtbwlog zeigt aber auch nur den Traffic eines Interfaces an. Und normalerweise sind die Ethernetports alle dem gleichen Interface zugeordnet. Also wird Dir das nicht viel bringen. Aber vielleicht kannst Du die Ports verschiedenen VLANs zuordnen und die bwlog Skripte so anpassen, das der Traffic für die einzelnen VLANs geloggt wird?
ok - ich versuch das mal wenn ich dazu komme...
hoffe mein linux wissen reicht dafür ;-)
wenn es Neuigkeiten gibt, poste ich die hier wieder rein.
danke derweil
LG
G. _________________ Linksys WRT54GL1.1
dd-wrt.v23 SP3 (23/03/07) std
Cable: 8000DL/512UL
2 PC's + 1 Ovislink WMU9000 as AP (no routing) via Ethernet (1WLAN Client on AP)
2 WLAN Clients on WRT54GL (1x Notebook (Intel chipset), 1x PC via Ovislink WL8000PCI).