Anzeige:
Ergebnis 1 bis 2 von 2

Thema: unlogisches verhalten

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.07.2016
    Beiträge
    1

    Unhappy unlogisches verhalten

    Hallo,

    wenn Fehler auftreten, die eigentlich gar nicht auftreten dürften, dann fängt es an, keinen Spaß mehr zu machen.
    Ich habe ein bash-Script, welches gestern einmal richtig lief und danach einmal falsch. Heute lief es wieder richtig, ohne dass ich etwas geändert habe.
    Vielleicht hat jemand von Euch eine Idee, woran das liegen könnte.
    Ich versuche, das Verhalten am Beispiel einer echo-Zeile mit integriertem date-Befehl Euch zu zeigen.
    Es gibt noch andere derartige Fehler, welche wie oben bereits geschrieben bei drei Durchläufen lediglich beim zweiten Durchlauf aufgetreten sind.
    Nun etwas genauer:
    Ich habe eine kleinen Server (Debian) und lasse jede Minute folgendes Script starten, welches bei einer IP-Änderung mittels echo-Befehl eine Datei befüllt, welche ich mir danach per eMail zuschicken lasse.:

    Code:
    #!/bin/bash
    ...
    echo "Bedingung erfuellt: curl ist installiert." > /tmp/$bsnm
    ...
    source /auto/function/validip
    ...
    echo "$bsnm Start ($(date)) mit IP:$IP fuer die Domain: $DOMAIN" >> /tmp/$bsnm
    if valid_ip $IP; then
     dnsip=$(ping -c 1 $DOMAIN | grep -Eo -m 1 '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
     echo "Domain-IP: $dnsip" >> /tmp/$bsnm
    ...
    Der Inhalt der Datei (/tmp/$bsnm) lasse ich mir am Ende des Scriptes per eMail schicken.
    Gestern früh kam folgende eMail mit korrektem Inhalt:

    ...
    *** Start (Fr 1. Jul 03:03:01 CEST 2016) mit IP:217.235.110.*** fuer die Domain: ***.de
    Domain-IP: 91.13.142.***
    ...

    35 Minuten später kam wieder eine eMail, diesmal mit folgendem Inhalt:

    ...
    *** Start (Fr 1. Jul 03:38:47 CEST 2016) mit IP:217.235.101.*** fuer die Domain: ***.de
    *** Start (Fr 1. Jul 03:38:48 CEST 2016) mit IP:217.235.101.*** fuer die Domain: ***.de
    *** Start (Fr 1. Jul 03:38:48 CEST 2016) mit IP:217.235.101.*** fuer die Domain: ***.de
    *** Start (Fr 1. Jul 03:38:48 CEST 2016) mit IP:217.235.101.*** fuer die Domain: ***.de
    *** Start (Fr 1. Jul 03:38:51 CEST 2016) mit IP:217.235.101.*** fuer die Domain: ***.de
    *** Start (Fr 1. Jul 03:38:55 CEST 2016) mit IP:217.235.101.*** fuer die Domain: ***.de
    Domain-IP: 217.235.110.***
    ...

    Man beachte die Zeitangabe von $(date).
    Vorneweg: Im Script gibt es keine Schleife.
    Zu Beginn wird die temporaere Datei immer mit neuem Inhalt überschrieben.
    Wie kann es also sein, dass die echo-Zeile mehrmals hintereinander mit dem "$(date)"-Befehl augenscheinlich im unregelmäßigen Sekundentakt ausgeführt wurde?
    Was schlagt Ihr vor, wie ich diesen Fehler eingrenzen, reproduzieren und schlussendlich aufdecken kann?

    Beste Grüße, Prefect

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.858
    Zitat Zitat von Prefect Beitrag anzeigen
    Code:
    echo "Bedingung erfuellt: curl ist installiert." > /tmp/$bsnm
    das klingt ja erstmal so, als würde /tmp/$bsnm nicht bedingungslos neu angelegt werden...
    Zitat Zitat von Prefect Beitrag anzeigen
    Code:
    source /auto/function/validip
    was macht das konkret?
    Zitat Zitat von Prefect Beitrag anzeigen
    Zu Beginn wird die temporaere Datei immer mit neuem Inhalt überschrieben.
    bist Du sicher? (s.o.)
    Zitat Zitat von Prefect Beitrag anzeigen
    Wie kann es also sein, dass die echo-Zeile mehrmals hintereinander mit dem "$(date)"-Befehl augenscheinlich im unregelmäßigen Sekundentakt ausgeführt wurde?
    Gegenfrage: wie hast Du sichergestellt, daß Dein Script wirklich im Minutentakt aufgerufen wird?
    Zitat Zitat von Prefect Beitrag anzeigen
    Was schlagt Ihr vor, wie ich diesen Fehler eingrenzen, reproduzieren und schlussendlich aufdecken kann?
    vllt hilft es, sich einmal "$$" für den Prozess und "$UID" für die Userkennung mit ausgeben zu lassen, daran sollte sich zumindest erkennen lassen, ob das Problem nur innerhalb oder auch[*] außerhalb des Scripts (sprich beim Aufruf des Scripts) zu suchen ist.
    [*] "auch" deshalb, weil dann mit Deinem "zu Beginn neu anlegen" etwas nicht stimmt.

    VG
    Rainer
    There's nothing a good whack with a hammer won't fix!

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •