Hallo Stefan,
kann es sein, dass im Code der admin.php zum Setzen der Uhrzeit ein Fehler ist. Ich habe heute einfach mal versucht die Möglichkeit zu nutzen, die Uhrzeit über das Webinterface zu setzen. Natürlich musste ich ersteinmal wieder das Thema mit sudo usw. lösen, aber das ist nicht das Thema dieses Posts.
Ich habe festgestellt, dass die Variable $txt das Datum in der Form "MMDDHHMMYY" enthält.
Zum Setzen des Datums unter Linux müsste es aber das Format "MM/DD/YYYY HH:MM:SS" oder mindestens "MM/DD/YYYY HH:MM" haben.
Nachdem ich das gefixt hatte
Code: Alles auswählen
# vorher
$txt = sprintf("%02d", $month) . sprintf("%02d", $day) . sprintf("%02d", $hour) . sprintf("%02d", $min) . $year = substr($year, -2);;
? Warum sind da zwei Strichpunkte am Ende?
Code: Alles auswählen
$txt = sprintf("%02d", $month) . "/" . sprintf("%02d", $day) . "/" . $year . " " . sprintf("%02d", $hour) . ":" . sprintf("%02d", $min);
! String umgebaut auf"MM/DD/YYYY HH:MM"
ging es immer noch nicht.
Wenn ich das PHP richtig interpretiere rufst du mit
Code: Alles auswählen
$cmd = "date \"$txt\"";
shell_exec($cmd . " > /dev/null &");
den Linux Befehl date mit Parameter $txt auf, was dann ergibt:
Unter Linux wird das Datum aber gesetzt mit dem Übergabeparameter "-s", es muss also heißen:
ergo dann:
Code: Alles auswählen
$cmd = "date -s \"$txt\"";
shell_exec($cmd . " > /dev/null &");
Kann es sein, dass hier ein Fehler vorliegt?
Natürlich wäre hier auch ein sudo besser, aber das ist eine andere Geschichte.
Ggf. müsste der Code auch noch geprüft werden, ob der Datumsstring abhängig von der SYSTEM_LOCALE des Systems umgebaut werden müsste.
Kein schlimmes Problem, da der Server ja die Uhrzeit von einem NTP-Server holen sollte aber beim Testbetrieb auf einem Raspberry Pi ohne Internet würde der Zeitabgelich schon helfen.
Gruß und Danke fürs Lesen
Peter