/ / Set cron um 5 Uhr PST in crontab - cron, crontab

Setzen Sie Cron für 5 Uhr PST in Crontab - Cron, Crontab

Ich arbeite zum ersten Mal mit cron in crontab und frage mich, ob es möglich ist, einmal am Tag etwas zu einer bestimmten Zeit auszuführen, sagen wir, 5 Uhr PST?

Ich habe es ausprobiert, aber wie stütze ich mich auf die PST-Zeit?

0 5 * * * command

Antworten:

0 für die Antwort № 1

Der Crontab-Eintrag wird systemabhängig ausgeführtZeit für das System, auf dem Sie das System ausführen. Wenn die Uhrzeit Ihres Servers auf Pacific Time eingestellt ist (und beachten Sie, dass die USA derzeit auf Sommerzeit und nicht auf Standardzeit eingestellt ist), wird sie zur angegebenen Uhrzeit ausgeführt. Wenn die Uhrzeit Ihres Servers auf eine andere Zeit eingestellt ist (z. B. UTC oder Eastern Time oder was auch immer), müssen Sie einige Zeitzonenberechnungen durchführen, damit der Job zu dem Zeitpunkt ausgeführt wird, zu dem er ausgeführt werden soll in welcher Zeitzone Sie es ausführen möchten.

Beachten Sie außerdem, dass Ihre Frage angibt, dass der Job ausgeführt werden soll 17 Uhr, aber Ihr notierter Crontab-Eintrag von 0 5 * * * läuft um 5 Uhr morgens in der Zeitzone des Systems. Wenn Sie möchten, dass es läuft 17 Uhrsollte der Crontab-Eintrag sein 0 17 * * *.


0 für die Antwort № 2

cron verwendet 24 h zeit, auch als militärzeit bekanntin den USA. 0 0 * * * ist Mitternacht und 0 12 * * * 12 Uhr nachmittags. Sie können Ihren Code jederzeit anpassen, wenn sich Ihr Server in einer anderen Zeitzone befindet (z. B. +2), um zu kompensieren, wo die Anwendung ausgeführt werden soll.


0 für die Antwort № 3

Zitieren der crontab(5) Man Seite (Hier oder geben Sie ein man 5 crontab um sicher zu sein, dass Sie die korrekte Dokumentation für Ihr System sehen):

Das cron Daemon läuft mit einer definierten Zeitzone. Derzeit nicht Unterstützung für Benutzerzeitzonen. Alle Aufgaben: System und Benutzer werden basierend auf der konfigurierten Zeitzone ausführen. Auch wenn ein Benutzer das angibt TZ Umgebungsvariable in seinem crontab dies betrifft nur die Befehle ausgeführt in der crontab, nicht die Ausführung der crontab Aufgaben selbst.

Also, wenn das System für die Verwendung von UTC konfiguriert istStandardmäßig verwenden die Zeitangaben in Ihrer Crontab UTC, nicht die Ortszeit. Es gibt keine direkte Möglichkeit, dies zu vermeiden (außer durch Ändern der Systemzeitzone, was natürlich andere Auswirkungen hat).

Wenn Sie möchten, dass Ihr Job um 17:00 Uhr Ortszeit ausgeführt wird, können Sie ihn entweder für das UTC-Äquivalent dieser Zeit einplanen (0 0 * * * läuft um Mitternacht UTC (17:00 Uhr PDT). Aber das passt nicht für die Sommerzeit-Übergänge.

Oder Sie können Ihren Job so planen, dass er stündlich ausgeführt wird (0 * * * *), und dann lässt der Job selbst das lokale überprüfenZeit und nichts tun, wenn die aktuelle Uhrzeit nicht Ihren Wünschen entspricht. Das Schreiben eines kleinen Wrapper-Skripts, das Ihren Befehl aufruft, ist wahrscheinlich der beste Weg, dies zu tun. Gehen Sie nicht davon aus, dass Ihr Job ausgeführt wird genau zur vollen Stunde. Eine Verzögerung von etwa einer Sekunde ist üblich. Für einen stündlichen Job ist es wahrscheinlich vernünftig, die aktuelle Uhrzeit mit einer Minute der erwarteten Zeit zu überprüfen.

(Diese Manpage erwähnt a CRON_TZ Umgebungsvariable, aber es scheint eine andere Implementierung als die von den meisten Linux-Systemen verwendete Vixie-cron zu sein.)


0 für die Antwort № 4

Verwenden Sie diesen Befehl:

H 5 * * *

Dadurch wird der Cron so eingestellt, dass der Auftrag um 5 Uhr PST in Crontab ausgeführt wird.