GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Cronjob läuft alle zwei Wochen, am Samstag, beginnend an diesem Samstag

Lösung 1:

0 8 * * 6 test $((10#$(date +\%W)\%2)) -eq 1 && yourCommand

date +%W :Wochennummer des Jahres mit Montag als erstem Wochentag, heute Woche 39

10#$(date +%W) :Konvertiere die date +W in eine Dezimalzahl umzuwandeln und Verwirrung beim Parsing der Shell-Basis zu vermeiden

$((39%2)) :Modulo-Operation:Ergebnis ist 0 (gerade Wochennummer) oder 1 (ungerade Wochennummer), Ergebnis dieser Woche ist 1, nächste Woche 0

test 1 -eq 1 :arithmetischer Test (gleich), in diesem Fall ist das Ergebnis boolesch wahr

&& yourCommand :Boolesches UND:Führen Sie yourCommand aus nur wenn das Ergebnis des vorherigen Befehls boolesch wahr war

Beachten Sie, dass das Jahr zwei ungerade Wochen haben kann:53 (dieses Jahr) und 1 (nächstes Jahr)

Lösung 2:

Was Sie gezeigt haben, ist "jede Woche". Dann lautet der Code:

0 8 * * 6

Sind Sie sicher, dass Sie es alle zwei Wochen ausführen müssen?

0 8 * * 6 expr `date +\%s` / 604800 \% 2 >/dev/null || yourCommand

Linux
  1. Unterschied zwischen Systemd und Terminal-Startprogramm?

  2. MySQLdump ohne Passwort im Cronjob

  3. Wie richte ich einen CRON-Job so ein, dass er alle 10 Sekunden unter Linux ausgeführt wird?

  4. IP-Forwarding =Wann und warum ist dies erforderlich?

  5. Wie führe ich Cron-Jobs jeden Tag zu einer bestimmten Stunde aus?

So führen Sie einen Linux-Befehl für immer alle X Sekunden aus oder wiederholen ihn

Cron-Jobs alle 5, 10 oder 15 Minuten ausführen

So führen Sie für immer alle X Sekunden einen Linux-Befehl aus

So führen Sie jede Woche am Sonntag einen Crontab-Job aus

Wie würde ich einen Cron-Job dazu bringen, alle 30 Minuten ausgeführt zu werden?

Wie führe ich alle 3 Monate einen Cron-Job aus?