Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Vorhergehende ÜberarbeitungLetzte Überarbeitung | |||
— | statusseite_aufsetzen [2014/01/23 18:34] – mwarning | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | **Installation der Statusseite** | ||
+ | Eine kleine Statusseite die den Verkehr und den Status des Gateways anzeigt. | ||
+ | Dafür wird lighttpd und ein CGI-Script verwendet. | ||
+ | |||
+ | apt-get install lighttpd | ||
+ | apt-get install gawk | ||
+ | |||
+ | gawk wird für das CGI-Script benötigt. | ||
+ | Der Inhalt von / | ||
+ | |||
+ | server.document-root = "/ | ||
+ | | ||
+ | server.port = 80 | ||
+ | server.bind = " | ||
+ | $SERVER[" | ||
+ | | ||
+ | server.username = " | ||
+ | server.groupname = " | ||
+ | mimetype.assign = ( | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ) | ||
+ | | ||
+ | index-file.names = ( " | ||
+ | |||
+ | In der Konfigurationsdatei muss anstatt 10.29.x.y die korrekte IP eingetragen werden | ||
+ | unter der die Statusseite im Freifunknetz erreichbar sein soll. | ||
+ | |||
+ | |||
+ | Der Inhalt von / | ||
+ | |||
+ | #!/bin/bash | ||
+ | | ||
+ | dst=" | ||
+ | src="/ | ||
+ | | ||
+ | vpn_if=' | ||
+ | wan_if=' | ||
+ | avg_time=5 | ||
+ | | ||
+ | | ||
+ | #write stdout to file | ||
+ | exec >" | ||
+ | | ||
+ | convert() { | ||
+ | echo $1 | awk '{ | ||
+ | split(" | ||
+ | c=1; x=$1 | ||
+ | while (x>=1024 && c<8) {x/=1024; c++} | ||
+ | xf=(c==1)?" | ||
+ | printf(xf" | ||
+ | }' | ||
+ | } | ||
+ | | ||
+ | vpn_tx1_bytes=`cat "/ | ||
+ | vpn_rx1_bytes=`cat "/ | ||
+ | wan_tx1_bytes=`cat "/ | ||
+ | wan_rx1_bytes=`cat "/ | ||
+ | | ||
+ | sleep $avg_time | ||
+ | | ||
+ | vpn_tx2_bytes=`cat "/ | ||
+ | vpn_rx2_bytes=`cat "/ | ||
+ | wan_tx2_bytes=`cat "/ | ||
+ | wan_rx2_bytes=`cat "/ | ||
+ | | ||
+ | wan_tx_speed=$((($wan_tx2_bytes-$wan_tx1_bytes)/ | ||
+ | wan_rx_speed=$((($wan_rx2_bytes-$wan_rx1_bytes)/ | ||
+ | vpn_tx_speed=$((($vpn_tx2_bytes-$vpn_tx1_bytes)/ | ||
+ | vpn_rx_speed=$((($vpn_rx2_bytes-$vpn_rx1_bytes)/ | ||
+ | | ||
+ | wan_tx_str=" | ||
+ | wan_rx_str=" | ||
+ | vpn_tx_str=" | ||
+ | vpn_rx_str=" | ||
+ | | ||
+ | u=`uptime` | ||
+ | load=" | ||
+ | u=" | ||
+ | uptime=" | ||
+ | hdd=`df -h | grep '/ | ||
+ | | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '</ | ||
+ | echo '< | ||
+ | | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '</ | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '< | ||
+ | echo '</ | ||
+ | echo '</ | ||
+ | echo '</ | ||
+ | echo '</ | ||
+ | | ||
+ | #move to final destination | ||
+ | mv " | ||
+ | | ||
+ | exit 0 | ||
+ | |||
+ | Für die Statusseite werde zusätzlich die beiden Dateien {{: | ||
+ | |||
+ | cd / | ||
+ | wget http:// | ||
+ | wget http:// | ||
+ | |||
+ | Das obige Script generiert die Statusseite und soll alle zwei Minuten ausgeführt werden. | ||
+ | Dafür wird ein Eintrag in die / | ||
+ | |||
+ | < | ||
+ | |||
+ | Natürlich muss das script auch ausführbar sein: | ||
+ | |||
+ | chmod a+x / | ||
+ | |||
+ | Das Verzeichnis für den Inhalt muss noch erstellt werden: | ||
+ | |||
+ | mkdir / | ||
+ | |||
+ | Bevor lighttpd gestartet wird wird dafür noch eine Nutzer und eine Gruppe angelegt: | ||
+ | |||
+ | groupadd www | ||
+ | useradd -g www -d / | ||
+ | | ||
+ | chown -R www:www / | ||
+ | chmod -R 775 / | ||
+ | |||
+ | Nun kann der Webserver gestartet werden. | ||
+ | |||
+ | / | ||
+ | | ||
+ | **vnStat** | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | apt-get install php5-cgi | ||
+ | apt-get install vnstat | ||
+ | vnstat -u -i fastd_bat | ||
+ | vnstat -u -i tun0 | ||
+ | vnstat -u -i icvpn | ||
+ | | ||
+ | In der / | ||
+ | Interface " | ||
+ | Interface " | ||
+ | Interface " | ||
+ | ergänzt werden\\ | ||
+ | In / | ||
+ | server.modules = (" | ||
+ | fastcgi.server = ( " | ||
+ | " | ||
+ | " | ||
+ | ))) | ||
+ | |||
+ | und | ||
+ | index-file.names = ( " | ||
+ | | ||
+ | wird durch | ||
+ | |||
+ | index-file.names = ( " | ||
+ | |||
+ | ersetzt | ||
+ | |||
+ | Nun muss nur noch das php-frontend in den richtigen Pfad heruntergeladen und entpackt werden und die / | ||
+ | |||
+ | wget http:// | ||
+ | tar -xvzf vnstat_php_frontend-1.5.1.tar.gz | ||
+ | mv vnstat_php_frontend-1.5.1 / | ||
+ | |||
+ | Alle Interfaces müssen als array aufgeführt sein: | ||
+ | $iface_list = array(' | ||
+ | |||
+ | und für jedes Interface wird noch ein Titel vergeben | ||
+ | $iface_title[' | ||
+ | $iface_title[' | ||
+ | $iface_title[' | ||
+ | $iface_title[' |