En la aterior entrada comenté como realizar la planificación de procesos a través de un EJB. Sin embargo es posible que en ciertas ocasiones lo que necesitemos sea ejecutar periodicamente algún script o programa que realice una tarea. En ejemplo podría ser el ejecutar un script que cada cierto tiempo realice una limpieza de archivos temporales.
En el caso de linux tenemos el comando crontab que nos permite registrar la ejecución de un proceso cada cierto tiempo a través de expresiones cron.
Una expresión cron es un estandar para definir momentos periodicos en lo que lanzar un proceso.
El funcionamiento del comando crontab es muy sencillo. Por un lado tenemos:
$ crontab -l
El cual nos mostrará una lista de lista de tareas registradas mediante el comando crontab asociados al usuario activo en el momento. En el caso de que el usuario con tenga ningún proceso registrado entonces aparecerá el mensaje no crontab for usuario.
$ crontab -l
$ no crontab for luis
por otro lado para añdir un nuevo proceso a ejecutar tenemos:
$ crontab -e
Esto abrirá un editor donde poder introducir un nuevo proceso. Simplemente será necesario añadir una nueva línea con una expresión cron y el comando a ejecutar.
Minuto Hora Día_Mes Mes Día_de_la_semana Comando
* * * * * comando_a_ejecutar
Veamos algunos ejemplos de expresiones cron:
Ejecutar un proceso todos los días a las 12:30 horas
20 12 * * * comando_a_ejecutar
Ejecutar un proceso cada 15 minutos
Opción 1:
0,15,30,45 * * * * comando_a_ejecutar
Opción 2:
*/15 * * * * comando_a_ejecutar
Ejecutar un proceso todos los lunes a las 12:30
20 12 * * 1 comando_a_ejecutar
Como he comenatdo con anterioridad con crontab -e se nos abre un editor para añadir o modificar la lista de procesos registrados. Sin embargo también es posible tener un archivo con los procesos que se desemos que ejecute el crontab y registrarlos. Para ello usar:
$ crontab nombre_archivo
Existe un archivo de ejemplo: /etc/crontab
No hay comentarios:
Publicar un comentario