Ausführen eines Cron-Jobs unter Linux alle sechs Stunden


Antworten:


323

Sie haben a vergessen *und zu viele Felder. Es ist die Stunde, um die Sie sich kümmern müssen

0 */6 * * * /path/to/mycommand

Dies bedeutet jede sechste Stunde ab 0, dh um die Stunden 0, 6, 12 und 18, als die Sie schreiben könnten

0 0,6,12,18 * * * /path/to/mycommand

Vielen Dank für die Antwort, dies ist alle 6 Stunden ab welcher Zeit? die Zeit, in der der Cron erstellt wird?
Gandalf StormCrow

danke, wenn ich es also alle 6 Stunden ab 15:00 Uhr ausführen möchte, wäre es das 15 15,23,05,11 * * * /path/to/mycommand?
Gandalf StormCrow

5
Ja, obwohl das erste Feld die Minute ist, die Sie auf 15 gesetzt haben, bedeutet dies 15: 15,23: 15,05: 15 und 11:15. (was übrigens nicht jede 6. Stunde ist, hast du vielleicht gemeint 0 15,21,3,9 * * *)
Nr.

6

Sie sollten einen Pfad zu Ihrem Befehl angeben, da cron in einer stark reduzierten Umgebung ausgeführt wird. Sie haben nicht alle Umgebungsvariablen in Ihrer interaktiven Shell-Sitzung.

Es ist eine gute Idee, einen absoluten Pfad zu Ihrem Skript / Ihrer Binärdatei anzugeben oder PATH in der Crontab selbst zu definieren. Um das Debuggen von Problemen zu erleichtern, würde ich stdout / err auch in eine Protokolldatei umleiten.


1
danke für die Antwort, aber wenn ich Umgebungsvariablen in meiner sh-Datei deklariere, als ob ich export variable=somethingsie weiterhin in demselben Skript verwenden könnte? und ich benutze Datumsbefehl viel innerhalb des Skripts
Gandalf StormCrow

@Gandalf - Ja. Sie können alle Ihre env-Variablen im Skript definieren. Das ist eine gute Idee, da es bedeutet, dass Ihr Skript eigenständig und isoliert von anderen Dingen ist, die Sie möglicherweise innerhalb von cron ausführen möchten
Brian Agnew

5
0 */6 * * * command

Dies ist der perfekte Weg, um 6 Stunden am Tag zu sagen.

Ihr Befehl dauert sechs Minuten!


2
@ArsenArsen Ich bin mir ziemlich sicher, dass es so war, weil es der bestehenden akzeptierten Antwort, die 4 Jahre zuvor geschrieben wurde, nichts wirklich hinzufügt.
Adinia

2

Bitte beachten Sie diese Syntax :

* */6 * * *

Dies bedeutet 60 Mal (jede Minute) alle 6 Stunden,

nicht

einmal alle 6 Stunden.


0
0 */6 * * *

Crontab alle 6 Stunden ist ein häufig verwendeter Cron-Zeitplan.


4
Was fügt diese Antwort hinzu, was die anderen Antworten nicht tun? @rkoots hat diesen genauen Befehl bereits erwähnt.
Auf Wiedersehen StackExchange

"Häufig verwendet" ? Warum? Können Sie das näher erläutern?
Peter Mortensen


-2

Versuchen:

0 */6 * * * command

. * muss


1
Die letzte Zeile hier macht nicht viel Sinn. Würden Sie es erweitern?
halfer

1
sieht aus wie die Antwort unvollständig ist
Ajayramesh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.