Programando Crones en menos de 1 minuto
Saturday, May 8th, 2010Hace un tiempo publiqué un post donde enseñaba los conceptos y usos básicos para programar tareas con crontab, en ese post expliqué que la fracción mínima para ejecutar un cron era de 1 minuto. Ahora, ¿qué sucede si tenemos que ejecutar ciertas tareas en fracciones de segundos dentro de esa unidad mínima de 1 minuto? ¿Se puede realizar? Si, claro que si!
El cron básicamente seguirá corriendo cada un minuto, pero lo que haremos para fraccionar la tarea, será crear un pequeño script en sh que podrá ser algo parecido a esto, donde contaremos las veces deseadas (0 a 5), correremos el comando (en este caso un simple echo con date para ver si efectivamente lo hace cada 10 segundos) y luego fijaremos el tiempo donde no se realizará nada con sleep. Haz cambios a este código reemplazando los valores y comandos y ya podrás ejecutar una tarea programada en menos de 1 minuto.
#!/bin/sh for (( z=0; z< =5; z++ )) do echo "print cada 10 segundos" && date sleep 10 done
Nota: la segunda línea del script debe ir “z< ” y “=5” juntos, por alguna razón el plugin de syntaxis no me interpreta bien ciertas expresiones en sh desde el HTML y añade un espacio.
Luego de tener el script listo y personalizado, basta con colocar la siguiente línea en los crones de root o del usuario que sea:
* * * * * sh /ruta/al/script.sh

