Für alle, die diese Antwort bearbeiten möchten, ist der Grund, warum Sie nicht nur das Feld Wochentag verwenden, dass *der Befehl ausgeführt wird , wenn sowohl der Wochentag als auch der Wochentag eingeschränkt sind (dh nicht ), wenn einer der beiden übereinstimmt .
Ich fand, dass ich dem% u entkommen musste, also:date +\%u
Antony D'Andrea
2
Sie können das Ausführen eines externen Skripts vermeiden, indem Sie eine Kombination aus dem Wochentagstrick und dem Wochentag verwenden:
# Run on every second Wednesday of the month
0 4 8-14 * Wed job.sh
Dadurch wird auch vermieden, dass ein anderes externes Programm ausgeführt wird. Die 8-14 wählt alle Tage aus, die der zweiten Woche des Monats entsprechen. Dann filtert es gerade an diesem Mittwoch heraus.
Für CentOS 7-Server scheint dies die Syntax zu sein, die für mich funktioniert. Bitte beachten Sie die Leerzeichen um [und ]. Es dauerte eine Weile, bis ich es herausgefunden hatte.
Dadurch wird die test.shDatei am zweiten Mittwoch des Monats um 13:07 / 13:07 Uhr ausgeführt. (0 = Sonntag, 1 = Montag, 2 = Dienstag, 3 = Mittwoch usw.)
Antworten:
Meine Manpage für Crontab (die ich leider nicht online zu finden scheine) enthält das folgende Beispiel:
Anpassung an Ihre Zwecke ...
quelle
*
der Befehl ausgeführt wird , wenn sowohl der Wochentag als auch der Wochentag eingeschränkt sind (dh nicht ), wenn einer der beiden übereinstimmt .date +\%u
Sie können das Ausführen eines externen Skripts vermeiden, indem Sie eine Kombination aus dem Wochentagstrick und dem Wochentag verwenden:
Dadurch wird auch vermieden, dass ein anderes externes Programm ausgeführt wird. Die 8-14 wählt alle Tage aus, die der zweiten Woche des Monats entsprechen. Dann filtert es gerade an diesem Mittwoch heraus.
quelle
Es ist nicht möglich, cron alleine zu verwenden, aber Sie können einmal pro Woche ein Skript aufrufen, das den Test ausführt:
Führen Sie in crontab jeden Mittwoch um 12.00 Uhr second_wed.sh aus:
In second_wed.sh:
quelle
Basierend auf dieser Antwort können Sie Folgendes tun:
quelle
Für CentOS 7-Server scheint dies die Syntax zu sein, die für mich funktioniert. Bitte beachten Sie die Leerzeichen um
[
und]
. Es dauerte eine Weile, bis ich es herausgefunden hatte.Dadurch wird die
test.sh
Datei am zweiten Mittwoch des Monats um 13:07 / 13:07 Uhr ausgeführt. (0 = Sonntag, 1 = Montag, 2 = Dienstag, 3 = Mittwoch usw.)quelle
Feuer um 10.15 Uhr am dritten Freitag eines jeden Monats:
0 15 10 ? * 6#3
Quelle: https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm
quelle