GNU/Linux >> Linux Esercitazione >  >> Linux

Cronjob viene eseguito ogni due settimane, il sabato, a partire da questo sabato

Soluzione 1:

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

date +%W :numero della settimana dell'anno con lunedì come primo giorno della settimana, oggi settimana 39

10#$(date +%W) :converte il date +W al numero decimale ed evitare confusione nell'analisi della base della shell

$((39%2)) :operazione modulo:il risultato è 0 (numero della settimana pari) o 1 (numero della settimana dispari), il risultato di questa settimana è 1, la prossima settimana 0

test 1 -eq 1 :test aritmetico (uguale), in questo caso il risultato è boolean true

&& yourCommand :booleano AND:esegui yourCommand solo se il risultato del comando precedente era boolean true

Nota che l'anno può avere due settimane dispari:53 (quest'anno) e 1 (il prossimo anno)

Soluzione 2:

Quello che hai mostrato è "ogni settimana". Quindi il codice è:

0 8 * * 6

Sei sicuro di doverlo eseguire ogni due settimane?

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

Linux
  1. Come eseguire o ripetere un comando Linux ogni X secondi per sempre

  2. Differenza tra il programma di avvio Systemd e Terminal?

  3. Come eseguire Cron ogni 5 minuti, secondi, ore, giorni, mesi

  4. Cos'è questo nuovo filesystem /run?

  5. CronJob ogni 25 minuti

Come eseguire Cron Jobs ogni 5, 10 o 15 minuti

Come eseguire un comando Linux ogni X secondi per sempre

Come eseguire un lavoro Crontab ogni settimana la domenica

Come posso ottenere un cron job da eseguire ogni 30 minuti?

Come configurare il lavoro CRON per l'esecuzione ogni 10 secondi in Linux?

Inoltro IP =quando e perché è necessario?