Millones de servidores web por todo el mundo utilizan el sistema operativo Linux. Una de sus principales ventajas es que cuenta con un administrador de tareas que facilita la programación de eventos, tales como la ejecución de un comando o la apertura de un archivo. Todo esto es posible gracias a Cron, un servicio del que te queremos hablar aquí. Permítenos que te contemos qué es Cron (y su inseparable archivo Crontab), cómo funciona y cuáles son sus principales ventajas.
¿Qué es Cron en Linux?
Cuando usamos el término Cron en Linux nos referimos al administrador de tareas capaz de programar eventos y ejecutarlos en un momento determinado. Se trata de un servicio que se ejecuta en segundo plano (estos procesos se conocen popularmente como daemon o demonios) y que sirve para programar tareas, evitando de esta manera que sea necesaria la intervención por parte del usuario.
Para ser efectivo, el Cron debe ejecutarse en el preciso instante en que se inicia el sistema. A partir de ese momento, comprobará de manera rutinaria si existen trabajos pendientes que deban llevarse a cabo en un momento dado. La revisión de las tareas se efectúa por parte del Cron cada minuto. De este modo, se verifica por parte del servicio si hay nuevas tareas o si alguna de ellas ha vencido y debe lanzarse. Pero, ¿cómo funciona exactamente el administrador de tareas?
Cómo funciona Cron en Linux
El Cron o el administrador de tareas del sistema operativo Linux funciona de un modo muy simple. Tal y como te hemos comentado, lo primero que sucede es que el servicio se activa. Esto sucede cuando se pone en marcha el equipo. Como consecuencia, podemos decir que, salvo algún contratiempo no contemplado, Cron siempre estará activo y funcionando en segundo plano.
Seguidamente, la herramienta comienza su labor. El sitio al que debería acudir el usuario para programar tareas es el archivo Crontab. Este documento de texto es revisado cada minuto por Cron con dos objetivos principales:
- Comprobar si existen nuevas tareas programadas. Crontab es el lugar en el cual se almacenan los nuevos eventos. La revisión constante en intervalos de 1 minuto ayuda a Cron a descubrir cuáles son las tareas que debe ejecutar y en qué momento hacerlo.
- Verificar si hay tareas vencidas. Cron consulta el fichero Crontab para advertir aquellas tareas que acaban de vencer. En el momento en el que una tarea ha caducado, el servicio lo detecta y la ejecuta.
Cron puede ejecutarse en diferentes directorios dependiendo de la distribución. Para conocer el estado de Cron, es decir, si está activo en el sistema operativo o no, usa estos comandos:
- /etc/rc.d/init.d/crond status
- /etc/init.d/crond status
Si recibes el mensaje crond is running significa que el Cron está en funcionamiento y, por tanto, está revisando y ejecutando las tareas.
Cómo administrar el archivo Crontab en Linux
Con lo que hemos explicado hasta ahora, ya tienes unas nociones básicas sobre lo que Cron representa y su funcionamiento general. Ahora bien, ¿cómo puedes programar tareas en un sistema operativo Linux? La clave está en saber controlar el archivo Crontab.
Para modificar la lista de comandos que deben ejecutarse, no te queda otra que alterar el fichero Crontab desde una ventana del terminal. Con estos comandos podrás administrarlo:
- crontab -e. Edita el archivo Crontab.
- crontab -l. Muestra las tareas configuradas en el Crontab.
- crontab -r. Elimina el archivo Crontab. Este comando es ideal para restablecer su contenido.
Asimismo, recuerda que la sintaxis de cada tarea es la siguiente:
- * * * * * /bin/script/archivo.sh
Los cinco asteriscos deben ser sustituidos por los valores adecuados para que la programación sea efectiva. De izquierda a derecha, cada uno se corresponde con:
- Minutos. Valor de 0 a 59.
- Horas. Valor de 0 a 23.
- Día del mes. Valor de 1 a 31.
- Mes. Valor de 1 a 12.
- Día de la semana. Valor de 0 a 6. 0 se corresponde con domingo.
Este es un ejemplo de un archivo SH que se ejecutará a las 3:30 de la madrugada todos los domingos:
- 30 2 * * 0 /bin/script/archivo.sh
Cómo sacarle partido a Cron en Linux en tu servidor web
Los servidores Linux también ofrecen la posibilidad de programar tareas. Lo normal es que, gracias a un panel de control con interfaz gráfica, como es el caso de Plesk, el usuario tenga la posibilidad de añadir eventos de una manera mucho más sencilla. Sin embargo, es posible que te preguntes qué ventajas tiene aprovechar las capacidades de Cron en tu sitio web. Aquí tienes algunos ejemplos.
Ejecutar un script de manera periódica
Si has creado un script que debe ejecutarse de manera periódica en el servidor, Cron puede ayudarte a programarlo como una tarea más. Esto te puede venir muy bien, por ejemplo, para lanzar un archivo SH que efectúe copias de seguridad de tu sitio web en un momento determinado.
Lanzar un comando en el servidor
Otra ventaja de saber utilizar el Cron, ya sea mediante el terminal o la interfaz gráfica del panel de control de tu servidor, es que tienes la posibilidad ejecutar comandos sin intervención de un usuario. ¿Cómo puedes aprovechar esta funcionalidad? Por ejemplo, le puedes pedir al servidor que descargue un archivo desde una URL de manera periódica gracias al comando wget. De este modo, el fichero se aloja en el almacenamiento de tu servidor y estará disponible en tu sitio web.
Programar tareas con archivos PHP
¿Has programado un evento dentro de un archivo PHP? ¿Quieres que se ejecute cada cierto tiempo? Entonces, aprovecha las capacidades de Cron para lograrlo. Tal y como sucede con los ficheros SH, el administrador de tareas es capaz de ejecutar el contenido de un PHP en intervalos de tiempo definidos por el usuario.
El mejor alojamiento para tu sitio web con servidor optimizado para WordPress
Lo que hemos analizado en este artículo con respecto a Cron te permitirá sacarle más partido a tu sitio web. Gracias a este servicio del sistema operativo Linux, usado de manera amplia en servidores web, serás capaz de programar tareas y lanzarlas en un momento determinado. En Proxima Host te ofrecemos la mejor oferta de servidores optimizados para WordPress basados en la plataforma AWS. Todos ellos vienen con el panel de control Plesk que, entre otras cosas, puede programar tareas gracias a Cron. ¡Da vida a tu proyecto con nosotros!