¿Qué es cron?
En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab.
Cómo funciona
El demonio cron inicia de /etc/rc.d/ o /etc/init.d dependiendo de la distribucion. Cron se ejecuta en el background, revisa cada minuto la tabla de tareas crontab /etc/crontab o en /var/spool/cron en búsqueda de tareas que se deban cumplir. Como usuario podemos agregar comandos o scripts con tareas a cron para automatizar algunos procesos. Esto es util por ejemplo para automatizar la actualizacion de un sistema, ejecutar un script que tenemos para contabilizar cualquier asunto o bien para avisarnos periodicamente del estado de algún servicio en nuestro servidor Linux.
Podremos crear tareas programadas en nuestro panel de control para que ejecute tareas de forma automatica.
- Para ello accedemos a nuestro panel de control -> ¿Como accedo a mi panel de control?
- Una vez accedido, pulsamos en la pestaña "Sitios", luego hacemos clic en "Trabajos programados" que se encuentra en el menú izquierdo en el apartado "Linea de comandos" y por ultimo, pulsamos en el botón verde llamado "Añadir Trabajo Programado", como muestra la imagen.
- En La siguiente pantalla que nos muestra, seleccionaremos el dominio el cual tendrá asociado el cron (la tarea programada), rellenamos los campos que queremos configurar y el script a ejecutar. Finalmente guardamos los cambios realizados y listo.
- En la siguiente foto mostramos un ejemplo en ISPconfig, el cual es una tarea programada que ejecutará un script cada 5 minutos, a todas horas, todos los dias del mes, todos los meses y todos los días de la semana.
Estos son unos ejemplos de la configuración de los campos que debemos rellenar que muestra la imagen anterior y entender como configurar las tareas programadas:
- Esta configuración ejecutará el script miscript.sh a las 10:15 a.m. todos los días.
15 10 * * * usuario /var/www/clients/client1/web1/web/miscript.sh
- Esta configuración ejecutará el script miscript.sh a las 10:15 p.m. todos los días.
15 22 * * * usuario /var/www/clients/client1/web1/web/miscript.sh
- Esta configuración ejecutará el script miscript.sh todos los domingos a las 10:00 a.m
00 10 * * 0 usuario /var/www/clients/client1/web1/web/miscript.sh
- Esta configuración ejecutará el script miscript.sh todos los domingos (sun) a las 10:45 a.m
45 10 * * sun usuario /var/www/clients/client1/web1/web/miscript.sh
- Esta configuración ejecutará el script miscript.sh el día 20 de noviembre a las 7:30.
30 7 20 11 * usuario /var/www/clients/client1/web1/web/miscript.sh
- Esta configuración ejecutará el script miscript.sh el día 11 de noviembre a las 7:30 a.m. y que sea domingo.
30 7 11 11 sun usuario /var/www/clients/client1/web1/web/miscript.sh
Igual se pueden manejar rangos especiales:
- Esta configuración ejecutará la tarea a las 5:30 de la tarde todos los días de lunes a viernes.
30 17 * * 1,2,3,4,5
- Esta configuración ejecutará la tarea a las 12 del día todos los días primero, quince y 28 de cada mes.
00 12 1,15,28 * *