GNU/Linux >> Znalost Linux >  >> Linux

Cronjob běží každé dva týdny, v sobotu, počínaje touto sobotou

Řešení 1:

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

date +%W :číslo týdne v roce s pondělím jako prvním dnem týdne, dnešní týden 39

10#$(date +%W) :převeďte date +W na desetinné číslo a vyvarujte se zmatku při analýze základu shellu

$((39%2)) :operace modulo:výsledek je 0 (číslo sudého týdne) nebo 1 (liché číslo týdne), výsledek tohoto týdne je 1, příští týden 0

test 1 -eq 1 :aritmetický test (rovná se), v tomto případě je výsledek booleovský true

&& yourCommand :Boolean AND:spustit yourCommand pouze pokud výsledek předchozího příkazu byl boolean true

Všimněte si, že rok může mít dva liché týdny:53 (letos) a 1 (příští rok)

Řešení 2:

To, co jste ukázali, je „každý týden“. Pak je kód:

0 8 * * 6

Jste si jisti, že jej musíte spouštět každé dva týdny?

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

Linux
  1. Použití WGET ke spuštění cronjob PHP

  2. Jak spustit crontab job každý týden v neděli

  3. Jak nastavit úlohu CRON, aby se spouštěla ​​každých 10 sekund v Linuxu?

  1. Jak spustit nebo opakovat příkaz Linuxu každých X sekund navždy

  2. jak spustit cron job každé 3 měsíce?

  3. Jak spustit úlohu cronu každý den v určitou hodinu?

  1. Rozdíl mezi programem spouštění systému a terminálu?

  2. Jak spouštět Cron každých 5 minut, sekund, hodin, dnů, měsíců

  3. Jak dát cronovi pokyn, aby provedl úlohu každý druhý týden?