GNU/Linux >> Tutoriales Linux >  >> Linux

Cronjob se ejecuta cada dos semanas, el sábado, a partir de este sábado

Solución 1:

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

date +%W :número de semana del año con el lunes como primer día de la semana, hoy semana 39

10#$(date +%W) :convertir el date +W al número decimal y evitar la confusión de análisis de la base de shell

$((39%2)) :operación de módulo:el resultado es 0 (número de semana par) o 1 (número de semana impar), el resultado de esta semana es 1, la próxima semana 0

test 1 -eq 1 :prueba aritmética (igual), en este caso el resultado es booleano verdadero

&& yourCommand :Booleano Y:ejecutar yourCommand solo si el resultado del comando anterior fue booleano verdadero

Tenga en cuenta que el año puede tener dos semanas impares:53 (este año) y 1 (el próximo año)

Solución 2:

Lo que has mostrado es "cada semana". Entonces el código es:

0 8 * * 6

¿Estás seguro de que necesitas ejecutarlo cada dos semanas?

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

Linux
  1. Usando WGET para ejecutar un cronjob PHP

  2. Cómo ejecutar el trabajo crontab cada semana el domingo

  3. ¿Cómo ejecutar cron job cada 3 meses?

  4. Reenvío de IP =¿cuándo y por qué es necesario?

  5. ¿Cómo ejecutar el trabajo cron en una hora específica todos los días?

Cómo ejecutar trabajos cron cada 5, 10 o 15 minutos

Cómo ejecutar un comando de Linux cada X segundos para siempre

Cómo ejecutar un trabajo Crontab cada semana el domingo

Linux:¿ejecutar script cada 30 minutos con Systemd?

MySQLdump sin contraseña en cronjob

¿Cómo puedo hacer que un trabajo cron se ejecute cada 30 minutos?