Trabajos de Cron en cascada

Si alguien es como yo y trabaja incluso una vez con los trabajos por lotes de IBM Mainframe, entonces es posible que conozcas CONTROL-M, que es una herramienta para programar trabajos no sólo en una fecha y hora, sino también en términos de condicionantes basados ​​en el éxito o Fallas de otros trabajos

Así que me pregunto si en una máquina linux, si esto es posible con el servidor cron. La única manera que sé si un trabajo cron debe ejecutarse en fecha y hora determinadas, ahora quiero ejecutar en una cadena de otros trabajos cron. Decir que cuando uno termine activa el otro para comenzar y así.

¿Hay una manera de lograr esto?

Mejor, Demian

El método estándar para ejecutar un comando si otro falla es comprobar el estado de salida del primer comando para cualquier cosa que no sea éxito y ejecutar si es así.

Aquí hay un ejemplo hacktastic recientemente visto:

### Start SSH if it stops. */8 * * * * /usr/lib/nagios/plugins/check_ssh -p 22 10.0.0.34 > /dev/null || /etc/init.d/sshd restart 

Lo anterior sólo ejecutará el comando "/etc/init.d/sshd restart" si falla el comando inicial. Eso es exactamente lo que estás buscando. Me imagino que es sólo en ese mainframe porque duplica sentencias condicionales simples que existen en casi todos los shells.

Si usted tiene un montón de "trabajos" que deben ejecutarse SOLAMENTE si el primero falla … entonces solo coloque todos esos trabajos en un script de shell y el comando inicial en el cron:

 # Run my cool script if "somecommand" fails. */8 * * * * /usr/bin/somecommand || /home/foo/bin/mycoolscript.sh 

Para bash el && y || Built-ins hará.

O puede instalar un servidor de programación: "job scheduler" es un buen proyecto GPL en Sourceforge