Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Statystyki routera na komórce - WML
http://forum.freesco.pl/viewtopic.php?f=22&t=11414
Strona 1 z 1

Autor:  khazis [ sobota, 25 lutego 2006, 21:05 ]
Tytuł:  Statystyki routera na komórce - WML

Ostatnio zainteresowałem sie WAPem i WML. Pomyślałem, że można by go jakoś wykorzystać i napisałem prosty skrypt, który pokaże na waszych komórkach status routerków, które administrujecie.

1. Wymagania
    + uruchomiany serwer www na routerze (testowałem na thttpd)
    + możliwość połączenia się w tym serwerem od strony netu ;)
    + statystyki niceshapera
2. Możliwości: standardowo skrypt pokazuje:
    + nazwe routera
    + ilość userów online (na podstawie statystyk niceshapera)
    + łączny download (na eth1)
    + łączny upload (na eth1)
    + adresy ip userow online (na podstawie statystyk niceshapera)
    + aktualny download i upload usera (na podstawie statystyk niceshapera)

3. Instalacja
    - skopuj skrypt wrzuć na router np do katalogu /root pod nazwa wml_status
    - ustaw mu prawa wykonywania
    : [/] [] ()
    chmod +x /root/wml_status

4. Konfiguracja
    - wyedytuj skrypt by go skonfigurować
    : [/] [] ()
     mcedit /root/wml_status

    - znajdź linijke: #sciezka do pliku ze statystykami niceshapera
    - poniżej wpisz pełną ścieżkę do tego pliku (znajdziesz ją w pliku /etc/niceshaper/config w linijce: stats unit xxx dump to file sciezka)


5. Uruchomienie
    - jednorazowe (do restartu routera lub zabicia procesów)
    : [/] [] ()
     /root/wml_status &

    - przy każdym starcie systemu
    : [/] [] ()
     mcedit /etc/rc.d/rc.local

    Znajdź linijkę: "Tutaj umieść komendy uruchamiające Twoje programy i wpisz poniżej niej:
    : [/] [] ()
     /root/wml_status &

Skrypt co 10 sekund odświeża statystyki i umieszcza dane w podanych przez Ciebie plikach (domyślnie index.wml i more.wml). Aby zobaczyć wynik działania skryptu uruchom w Twoim telefonie połączenie WAP (GRPS) i połącz się z witryną
http://ip.twojego.routera/index.wml


6. Kod skryptu
: [/] [] ()
#!/bin/bash
#
# Nazwa:   wml_stats
# Opis:    Skrypt do generowania statystyk ilosci userow, lacznego downloadu
#      uploadu oraz listy ip userow wraz z pasmem, ktore w danej chwili
#      zajmuja wg niceshapera zapisujacy dane wyjsciowe w formacie WML
# Autor:   Khazis
# Version: 0.2b - 25.02.2006
#

#configuracja
#sciezka do pliku statystyk niceshapera
nice_stats='/var/www/nsstats.txt'

#sciezka dla pliku glownego
export='/var/www/index.wml'
exp_link='index.wml'
   
#sciezka dla pliku ze szczegolami
export_more='/var/www/more1.wml'
exp_more_link='more1.wml'
   
#petelka powtarzajaca skrypt
while :; do

   #obliczanie ilosci userow
   users=`cat $nice_stats | wc -l`
   let users-=4

   #obliczanie downloadu i uploadu
   PPP=`cat /proc/net/dev | grep -v "00:00:00:00:00:00" | grep -w eth1`
   TPPP=`echo $PPP | awk '{print $1" "$2}' | awk -F: '{print $2}' | awk '{print $1}'`
   OPPP=`echo $PPP | awk -F: '{print $2}' | awk '{print $9}'`
   sleep 1
   PPPA=`cat /proc/net/dev | grep -v "00:00:00:00:00:00" | grep -w eth1`
   TPPPA=`echo $PPPA | awk '{print $1" "$2}' | awk -F: '{print $2}' | awk '{print $1}'`
   OPPPA=`echo $PPPA | awk -F: '{print $2}' | awk '{print $9}'`

   #obliczenie predkosci w Kbit/s
   let down=(OPPPA-OPPP)/1000*8
   let up=(TPPPA-TPPP)/1000*8


   #generowanie glownej stronki wml
   echo '
       <?xml version="1.0"?>
       <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
         "http://www.wapforum.org/DTD/wml_1.1.xml">
       <wml>
         <card title="Router Status">
         <p>
   ' > $export

   echo 'Router:<b>' `hostname` '</b><br/>' >> $export
   echo 'Userow online:<b>' $users '</b><br/>'>> $export
   echo 'Download:<b>' $down'Kb/s' '</b><br/>'>> $export
   echo 'Upload:<b>' $up'Kb/s' '</b><br/>'>> $export

   echo '
         </p>
         <p>
            <a href="'$exp_more_link'">Szczegoly</a>
         </p>
         </card>
       </wml>
   ' >> $export


   #generowanie szczegolow
   echo '
       <?xml version="1.0"?>
       <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
         "http://www.wapforum.org/DTD/wml_1.1.xml">
       <wml>
         <card title="Router Status">
         <p><!-- Tutaj rozpoczyna sie tresc karty -->
           <b>Userzy Online:</b><br/>
   ' > $export_more

   #wypisanie ip userow bedacych online
   cat /var/www/nsstats.txt | grep " - " | awk '{OFS=", ";ORS="<br/>"; print $1,$5,$10}' >> $export_more

   echo '
         </p>
         <p>
           <a href="'$exp_link'">Powrot</a>
         </p>
        </card>
      </wml>
   ' >> $export_more

   #czekamy 10 sec i od nowa
   sleep 10
done

Oczywiście można dodać do statystyk dowolne dane pobrane z systemu. Dzieki skryptowi można również sprawdzać z dowolnego miejsca na Ziemi bez dostępu do netu czy router pracuje (a dokładniej czy działa na nim serwer www).

Miłej zabawy ;)

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/