[TIP] Como correr un comando cada N cantidad de segundos con Cron en Linux

Otro título sugerido: Cron, la puta que te parió.

No se si a ustedes les pasa. A mi si: Cada vez que tengo que usar Cron, tengo que pensar.  Hace seis años todavía me costaba acordarme que función cumple cada columna. Hoy por suerte es un problema que ya no tengo pero mierda, que costó sudor…

No tengo una propuesta superadora. No se me ocurre como podría hacerse mejor, pero es una flor de poronga, es innegable. Por ejemplo:  Haceme un cron que corra al minuto 20 de todos los sábados de Enero y decime si no lo tuviste que pensar por lo anti-intuitivo que es.

¿Viste? Cuesta.

Usar Cron, es, fué y será siempre un quebradero de cabeza.

Es ahí, en esa complejidad en la sintaxis que te obliga a pensar, donde radica la potencia de este, el programador de tareas por excelencia para Linux.

 

Todo muy lindo, hasta que tenés que poner un cron a corrrer cada determinada cantidad de segundos, y como lo tuve que pensar MUCHO MAS de la cuenta, vine a escribir la solución barata que encontré al problema:

Como programar un comando para que se ejecute cada cierta cantidad de segundos en Linux, usando Cron:

Resulta que Cron tiene una precisión -una granularidad, para que se entienda-, de solamente un minuto. Si querés ejecutar un comando cada veinte segundos, te cagás. No se puede, no existe en cron una herramienta para ejecutar cosas durante un período de tiempo menor a un minuto. Punto. 

Entonces, ¿Cómo?

 

Esta es mi solución pedorra al problema:

* * * * * /usr/bin/mi_comando  #Ejecutar mi_comando cada un minuto
* * * * * sleep 20 && /usr/bin/mi_comando #Esperar 20 segundos y ejecutar mi_comando cada un minuto
* * * * * sleep 40 && /usr/bin/mi_comando #Esperar 40 segundos y ejecutar mi_comando cada un minuto

 

¡Taraaaaaaaaan! (Buena suerte si lo tenés que ejecutar cada un segundo, tal vez te convenga mas un loop en bash)

Por cierto, si tenés una solución mas elegante al problema, me interesa.

2 comentarios en “[TIP] Como correr un comando cada N cantidad de segundos con Cron en Linux

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Wordpress Hashcash needs javascript to work, but your browser has javascript disabled. Your comment will be queued in Akismet!