/ / ¿Cómo usar el Crontab de Linux para ejecutar dos tareas en días alternos? - linux, crontab

¿Cómo usar el Crontab de Linux para ejecutar dos tareas en días alternativos? - linux, crontab

Quiero hacer esto:

Ejecute la tarea A hoy a las 6:00 am, y luego cada dos días después de eso.

Ejecute la Tarea B mañana a las 6:00 am, y cada dos días después de eso.

Respuestas

0 para la respuesta № 1

La solución normal para tener un cron trabajo ejecutado cada dos días estaría usando */2 en el campo de días, pero eso no admite días alternos.

Probablemente tengas que hacer una lista de días:

0 6 */2 * * #Job to execute every even numbered day
0 6 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 * * #Job to execute every odd numbered day

Tenga en cuenta que esto no será perfecto en los meses que terminen con un número impar de días. Ya que terminará ejecutando el segundo trabajo dos veces seguidas, el 31 y el 1er.

Probablemente vale la pena mirar man crontab en su sistema también. Algunos crons admita formas más complejas de programación, como las dependencias (espere hasta que finalice este trabajo, luego espere otras X horas y ejecute este otro trabajo) que podrían serle útiles.


0 para la respuesta № 2

Podrías usar date %s para determinar si es un día "impar" o "incluso" en un calendario corriente libre de límites artificiales de años y meses. Por ejemplo:

$ [ $(( `date +%s` / 86400 % 2 )) -eq 0 ] && echo A || echo B

Y conduzca la tarea A o la tarea B así.