Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Shell Script zum testen, welches die Systemzeit jeweils um eine Std. nach vorne dreht

  1. #1
    sendewillige Station Avatar von $emperf!
    Registriert seit
    Sep 2008
    Ort
    Zürich
    Beiträge
    164

    Shell Script zum testen, welches die Systemzeit jeweils um eine Std. nach vorne dreht

    Hallo allerseits

    Ich habe eine kleine Web-Applikation geschrieben welche ich über einen Zeitraum von einem Jahr testen möchte. Dazu würde ich gerne die Systemzeit per bash script um eine Stunde nach vorne drehen und das Script via while loop 8760 mal durchlaufen lassen und jedes mal mein PHP Script ausführen.

    Zum anfangen und um mit der "date" Funktion etwas zu üben, habe ich mir folgendes Script geschrieben:

    Code:
    #!/bin/bash
    x=1
    while [ $x -le 5 ]
      do
      date --set="now +1 hour"
      DateOut=`date`
      x=$(( $x + 1 ))
    done
    exit 0
    Wenn ich es ausführe generiert es mir erwartungsgeäss die folgende Ausgabe und stellt die Systemzeit jeweils um eine Stunde nach vorne:

    Fri 30 Aug 2019 04:28:59 PM CEST
    Fri 30 Aug 2019 05:28:59 PM CEST
    Fri 30 Aug 2019 06:28:59 PM CEST
    Fri 30 Aug 2019 07:28:59 PM CEST
    Fri 30 Aug 2019 08:28:59 PM CEST


    Um meine WebApp zu testen dachte ich mir, muss ich nur noch mein PHP Script ausführen lassen während das bash Script durch seine Iterationen loopt.
    Dazu habe ich noch die 7. Zeile hinzugefügt.


    Code:
    #!/bin/bash
    x=1
    while [ $x -le 5 ]
      do
      date --set="now +1 hour"
      DateOut=`date`
      php bash_date_test3.php
      x=$(( $x + 1 ))
    done
    exit
    Nach erneutem Ausführen des Skriptes wird jedoch das Datum nicht mehr bei jedem durchlauf des while loop eine Stunde nach vorne gedreht
    Die Ausgabe sieht folgendermassen aus:

    Fri 30 Aug 2019 04:45:40 PM CEST
    Fri 30 Aug 2019 04:45:40 PM CEST
    Fri 30 Aug 2019 04:45:40 PM CEST
    Fri 30 Aug 2019 04:45:40 PM CEST
    Fri 30 Aug 2019 04:45:40 PM CEST



    Das PHP Skript welches ich zum Testen ausführen lasse schreibt lediglich die aktuelle Systemzeit und das Datum, welches es vom lokalen System holt in eine DB:
    Die Einträge in die DB funktionieren auch problemlos, jedoch ist eben das Datum immer das selbe (Fri 30 Aug 2019 04:45:40 PM CEST), es wird also nicht um eine Stunde nach vorne gestellt.

    PHP-Code:
    <?php
    include "config.php";
    $datum_test1 = new DateTime();
    $datum_test1 $datum_test1->format('Y-m-d H:i:s');
    mysqli_query($conn"INSERT INTO bash_date_test (datum_test1) VALUES ('$datum_test1')");
    ?>

    Hat jemand einen Tipp was ich anderst machen muss? Wie angedeutet, würde ich gerne die Systemzeit jeweils eine Stunde nach vorne drehen und dann das PHP Skript ausführen welches dann davon ausgehen sollte, dass nun einen Stunde später ist als bei der letzten Ausführung.


    Vielen Dank für allfällige Hilfe zu dem Problem,
    Markus
    -------------------------- ---- - - --- - ----- --
    resonanz != zufall
    ------ - ----- - - ------------- - -- ---- -- ------

  2. #2
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.306
    Ich vermute es ist ein zeitliches ding. Heute stellt fast jedes System seine Zeit über das Internet ein, es wird regelmäßig geprüft, ob die Zeit nach passt und falls nicht wird sie korrigiert - oder du ein kurze pause in deine erste Version ein.

    Klingt aber als wenn du dich auch mal hier mit befassen solltest: https://stackoverflow.com/questions/...ting-fake-date (https://github.com/wolfcw/libfaketime )
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  3. #3
    sendewillige Station Avatar von $emperf!
    Registriert seit
    Sep 2008
    Ort
    Zürich
    Beiträge
    164
    Hallo Nopes

    Danke für deine Antwort. NTP habe ich auf diesem Server bewusst weg gelassen weil ich davon ausging, dass mir das dann dazwischen funken könnte. Die libfaketime Methode werde ich mir genauer anschauen, tönt sehr nach dem was mir weiterhelfen könnte.

    Grüsse
    Markus

    Edit-> Habe grad festgestellt, dass "libfaketime" sowie "faketime" in Debian bereits als apt Softwarepakete vorhanden sind. Danke nochmal für den Tipp Nopes und danke an die Debian Entwickler
    Geändert von $emperf! (31.08.19 um 07:27 Uhr)
    -------------------------- ---- - - --- - ----- --
    resonanz != zufall
    ------ - ----- - - ------------- - -- ---- -- ------

Ähnliche Themen

  1. Shell Script welches das System täglich updatet!
    Von Terminator im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 04.06.05, 15:30
  2. Suse Linux 9.2 mit Windows auf jeweils eine Festplatte
    Von Der_Pate im Forum System installieren und konfigurieren
    Antworten: 2
    Letzter Beitrag: 19.02.05, 18:26
  3. Suse Linux 9.2 mit Windows auf jeweils eine Festplatte
    Von Der_Pate im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 18.02.05, 16:57
  4. sps (s7 300) per shell-script eine tcp/ip telegramm schicken...
    Von cucube2001 im Forum Selbstgebaute Elektronik
    Antworten: 1
    Letzter Beitrag: 01.12.04, 15:06
  5. Script schreiben welches Shell öffnet u.Befehl ausführt
    Von Bernt im Forum System installieren und konfigurieren
    Antworten: 5
    Letzter Beitrag: 03.03.04, 00:13

Lesezeichen

Berechtigungen

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