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.