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:
Wenn ich es ausführe generiert es mir erwartungsgeäss die folgende Ausgabe und stellt die Systemzeit jeweils um eine Stunde nach vorne:Code:#!/bin/bash x=1 while [ $x -le 5 ] do date --set="now +1 hour" DateOut=`date` x=$(( $x + 1 )) done exit 0
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.
Nach erneutem Ausführen des Skriptes wird jedoch das Datum nicht mehr bei jedem durchlauf des while loop eine Stunde nach vorne gedrehtCode:#!/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
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
Lesezeichen