Results 1 to 2 of 2

Thread: HowTo Online/Offline Ping.sh Netzwerkstatus Shell-Script + WebGui

  1. #1
    Join Date
    Nov 2005
    Location
    Germany
    Posts
    423

    HowTo Online/Offline Ping.sh Netzwerkstatus Shell-Script + WebGui

    Hi,

    so wieder ein Projekt was ich angehen möchte. :-)
    Um was gehte es?

    Anwendung:
    Ermitteln ob ein Rechner oder ein anderes Netzwerkgerät erreichbar (online) ist oder nicht (offliner). Zum Beispiel ist der Netzwwerkdrucker eingeschaltet oder haben die Kidis den PC noch an usw. Das muß jeder dann für sich festlegen .

    Funktionsweise:
    Das ping.sh Shell-Script "pingt" z.B. 10 LAN-Geräte im Netzwerk an.
    Es macht immer z.B. 4 Pings und schreibt nach 4 Pings das Ergebnis als Prozentwert (0%, 25%, 50%, 100% Verluste) in eine ping.txt Datei für jede IP.
    So könnte die ping.txt Datei dann aussehen:
    PHP Code:
    192.168.0.1      0%
    192.168.0.50    25%
    192.168.0.200   50%
    192.168.0.201   50%
    192.168.0.202    0
    Ein zweites status.sh Shell-Script liest die Daten für jede IP aus der ping.txt.
    Und generiert eine status.html oder eine status.asp oder eine status.php.
    Für jede IP eine Zeile und dahinter dann einen farbigen Punkt:
    IP: 192.168.0.1 0% Verlust == grüne Punkt (Router)
    IP: 192.168.0.50 25% Verlust == gelbe Punkt
    IP: 192.168.0.200 50% Verlust == orange Punkt (LAN-Camera)
    IP: 192.168.0.201 100% Verlust == rote Punkt (Netzwerkdrucker)
    IP: 192.168.0.202 0% Verlust == grüne Punkt (Router)

    Frage:
    Was passiert wenn gerade das ping.sh in die Datei schreibt
    und
    das status.sh die html generieren will?

    Was passiert wenn ein Netzwerkgerät folgende Antwort bringt:
    z.B. bei “Antwort von 192.168.1.1: Zielhost nicht erreichbar”
    Ansatz:
    In Forum hier habe ich in diesem Thread Utility to check if In ternet is OK folgendes gefunden, was als Ansatz sicher verwendbar ist:
    ping.sh
    PHP Code:
    #!/bin/sh
    # ping script
    #
    #  '#' -> testurl reachable
    #  '@' -> testurl not reachable, url is reachable
    #  '-' -> neither testurl, nor url is reachable
    #
    # testurl is a server from which you want to determine reachablility
    testurl="www.hetnet.nl"
    # url is a server located in your ISP domain and serves as a connection check
    url="www.planet.nl"
    # create file containing date
    filename=`date +/tmp/ping/ping%m%d`
    minute=`date +%M`
    # start each hour on a new line
    if [ $minute -eq 0 ]
    then
      
    echo >> $filename;
      echo -
    `date +%H:%M` >> $filename;
    fi
    if ping -c 2 $testurl
    then
      
    echo -'#' >>$filename;
    else
      if 
    ping -c 2 $url
      then
        
    echo -'@' >>$filename;
      else
        echo -
    '-' >>$filename;
      
    fi
    fi 
    gen_ping.awk
    PHP Code:
    BEGIN
    {i=0;
    }
    {
        
    pingname[i]=$1;
        
    i++;
    }
    END {
    n=i;
    print 
    "Content-type: text/html";
    print 
    "<HTML>";
    print 
    "<title>Ping statistics</title>";
    print 
    "<body bgcolor=\"#aaaaee\">";
    print 
    "<h1>Ping statistics </h1>";
    print 
    "<p>Choose date for statistics:";
    print 
    "<p><FORM ACTION = \"ping.cgi\"";
    print 
    "METHOD = GET> <SELECT NAME=day >";
    for (
    i=0i<n;  i++)
        print 
    "<Option> " pingname[i] ;
    print 
    "</SELECT>";
    print 
    "<INPUT TYPE=SUBMIT value=\"Show\" >";
    print 
    "</FORM>";
    print 
    "</HTML>";
    print 
    "<p>";
    print 
    "<font color=\"blue\" size=\"2\">";
    print 
    "Ping statistics (c) 2004 by SOdB";
    print 
    "</font>";

    ping.cgi
    PHP Code:
    #!/bin/sh
    # cgi script to generate HTML page for ping statistics
    #
    AWK="/tmp/harddisk/busybox awk"
    ls -/tmp/ping/ping* | grep ping[0-9][0-9][0-9][0-9] | $AWK -f gen_ping.awk 
    Warum heisst die Datei *.awk? Hat das eine Besondere Bedeutung unter Linux?

    Vorschläge:
    Wie würdet ihr das Shell-Script erweitern / ändern um das umzusetzten?

    Gruß WLAN-Fan.

    PS:
    Es gibt auch große Netzwerk und Server Status Projekte:
    Nagios:
    Wächter der Netze - Überwachung mit Nagios
    WikiPedia - Nagios
    Nagios-Wiki (deutsch)

    Zabbix:
    Zabbix.com
    Installing ZABBIX on Asus Wl-500gd and other mipsel HW
    Open Source Server Monitoring Server- und Client-Überwachung mit Zabbix 1.4.2
    Server- und Client-Überwachung mit Zabbix 1.4.2, Teil 2: Frontend
    Attached Files Attached Files
    Last edited by WLAN-Fan; 18-02-2008 at 17:54.

  2. #2
    Join Date
    Nov 2005
    Location
    Germany
    Posts
    423

    Programm fping statt ping

    Hi,

    habe noch das Programm fping gefunden eventeull ist das sogar besser geeigne:
    Quelle: http://linuxwiki.de/fping
    Fping kann verwendet werden, um eine Liste von Hosts oder ein Netz anzupingen. Beispiele:

    fping 172.16.1.4 172.16.1.2 (Die Liste kann auch von einer Datei kommen.)
    fping -c 1 -g 172.16.1.0/24 (Hier braucht man den Count!)
    Der Output geht auf Standard-Error. Um ihn auszuwerten, kann man z.B. so vorgehen:

    fping -c 1 -g 72.16.1.0/24 2> /tmp/fping

    cat /tmp/fping | grep alive
    Damit bekommt man alle Rechner im Netz, die auf Ping antworten.
    Gruß WLAN-Fan.

Similar Threads

  1. Update NoIp, DynDNS, dyn.ee, ipactive via script
    By rj.2001 in forum WL-500g/WL-500gx Tutorials
    Replies: 9
    Last Post: 04-01-2011, 16:48
  2. Script for asus router
    By and_woox in forum WL-500gP Q&A
    Replies: 1
    Last Post: 12-11-2007, 04:53
  3. Printing in shell
    By thE_29 in forum WL-500gP Q&A
    Replies: 17
    Last Post: 19-10-2007, 13:40
  4. Call script from post-boot and not returing?
    By scriptman in forum WL-500gP Q&A
    Replies: 2
    Last Post: 04-12-2006, 04:56

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •