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.
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.
el puto crontab no funciona en wheezy
Eso es imposible. Todo Linux tiene un cron. Estás haciendo algo mal.
¡Saludos!