Ping-Tool

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von niLs, 16.08.2007.

  1. niLs

    niLs òle òle

    Dabei seit:
    10.06.2004
    Beiträge:
    153
    Zustimmungen:
    0
    Ort:
    Hannover
    hallöchen,

    ich bin gerade dabei, ein kleines ping-script zu schreiben, was mit den normalen linux-ping absetzt, aber im prinzip vor jede zeile die zeit der ausführung zu schreiben.

    da crontab wohl nur minütliche ausführung zulässt, bin ich mit folgender idee nicht weitergekommen:

    Code:
    
    #!/bin/bash
    #
    # pingtest
    
    #hier änderungen machen
    pinghost="www.google.de"
    logfile="/home/niLs/pingtest.log"
    
    
    #hier nichts mehr ändern
    pingzeit=`date +%A" "%d.%m.%Y" "%H:%M:%S`
    pingopts=`ping -W3 -c1 $pinghost |grep 64`
    falsemsg="Ziel ($pinghost) nicht erreichbar"
    pingtrue="$pingzeit --- $pingopts"
    pingfalse="$pingzeit --- $falsemsg"
    
    
    if [ "$pingopts" == "" ]; then
       echo $pingfalse
    else
       echo $pingtrue
    fi
    
    exit 0
    
    
    eventuell hat ja noch jemand einen anderen ansatz :-)
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    Und was ist dein Problem genau?
     
  4. niLs

    niLs òle òle

    Dabei seit:
    10.06.2004
    Beiträge:
    153
    Zustimmungen:
    0
    Ort:
    Hannover
    ups, *lach*

    also, ich möchte prinzipiell das ganze ohne -c1 ausführen, sodass er durchgängig pingt, mir aber immer schön die uhrzeit dazuschreibt. :)

    gruß nils
     
  5. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    Code:
    pinghost="www.google.de"
    logfile="/home/niLs/pingtest.log"
    
    
    pingzeit=`date +%A" "%d.%m.%Y" "%H:%M:%S`
    pingopts=`ping -W3 -c1 $pinghost |grep 64`
    falsemsg="Ziel ($pinghost) nicht erreichbar"
    pingtrue="$pingzeit --- $pingopts"
    pingfalse="$pingzeit --- $falsemsg"
    
    while :; do
    if [ "$pingopts" == "" ]; then
       echo $pingfalse >> "$logfile"
    else
       echo $pingtrue >> "$logfile"
    fi
    sleep 1;
    done
     
  6. niLs

    niLs òle òle

    Dabei seit:
    10.06.2004
    Beiträge:
    153
    Zustimmungen:
    0
    Ort:
    Hannover
    Hallo smg,

    danke schonmal für deine Hilfe, leider funktionierte das so nicht, die idee hatte ich auch schon.

    Folgende Logfile-Einträge sehe ich dann:

    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms
    Freitag 17.08.2007 08:38:27 --- 64 bytes from ug-in-f99.google.com (66.249.93.99): icmp_seq=1 ttl=248 time=17.0 ms


    Wie man sieht, läuft die Zeit nicht mit.

    Gruß Nils
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 angelsfall, 17.08.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Wie auch, die Zeit wird ja nur einmal am Anfang instanziiert. Genau so verhält sich das mit dem Ping. So schreibt er dir die ganze Zeit immer die selbe Zeile ins Log.
    Daher muss das alles für jeden Schleifendurchlauf neu angestoßen werden.

    Quick'n'Dirty:

    Code:
    #!/bin/bash
    
    pinghost="www.google.de"
    logfile="/home/niLs/pingtest.log"
    
    function pingtime() {
      pingzeit=`date +%A" "%d.%m.%Y" "%H:%M:%S`
      pingopts=`ping -W3 -c1 $pinghost |grep 64`
      falsemsg="Ziel ($pinghost) nicht erreichbar"
      pingtrue="$pingzeit --- $pingopts"
      pingfalse="$pingzeit --- $falsemsg"
    }
    
    while :; do
    pingtime
    if [ "$pingopts" == "" ]; then
       echo $pingfalse >> "$logfile"
    else
       echo $pingtrue >> "$logfile"
    fi
    sleep 1;
    done
    
    
     
  9. niLs

    niLs òle òle

    Dabei seit:
    10.06.2004
    Beiträge:
    153
    Zustimmungen:
    0
    Ort:
    Hannover
    Merci, so läufts!
     
Thema:

Ping-Tool