Tareas cron o cronjobs de cPanel

Tareas cron
3.9
(12)

¿Necesitas añadir una tarea cron en cPanel, pero no sabes muy bien cómo hacerlo? Si todavía estás empezando en esto, no te preocupes. Con este post aclararás todas tus dudas sobre los cron jobs 🙂

Primero empezaré por la parte teórica, explicándote qué es cron, qué es crontab y qué es cronjob, conocido también como tarea cron.

Vistos estos tres conceptos, en la parte práctica, te mostraré cómo añadir tareas cron en cPanel, gestionar las notificaciones y configurar la periodicidad en la que se ejecutan.

¿Vamos a ello?

Cron, crontab y tareas cron: ¿Es lo mismo?

No. Ya te adelanto que, aunque estos conceptos están relacionados, no son lo mismo.

Veamos cada uno de ellos por separado para entender la diferencia 🙂

¿Qué es un cron?

Un cron es un servicio que viene instalado de forma nativa en las distribuciones Linux/Unix. Este servicio, también conocido como «demonio» es el encargado de ejecutar en segundo plano un script o comando que realice diferentes tareas de forma programada.

Este servicio de cron es el encargado de comprobar de forma periódica si existe alguna tarea (job) programada en la tabla cron o crontab para ejecutar, tomando siempre como referencia la hora configurada en nuestro sistema operativo.

¿Qué es crontab?

Crontab es un archivo de texto que es leído por el servicio de cron. Dentro del fichero se encuentra un listado con todos los scripts/comandos que se tienen que ejecutar, es decir, todas las tareas cron que tienes configuradas en cPanel.

Para que sea interpretado de forma correcta por el servicio de cron, crontab debe tener una estructura concreta.

Crontab posee seis campos: los 5 primeros se refieren a la fecha y hora de ejecución y el último al comando, tarea o script que se debe ejecutar.

Estructura crontab

¿Qué son las tareas cron o cronjobs?

Las tareas cron son el conjunto de «trabajos» (scripts/comandos) que están especificados en crontab y que son ejecutados por el servicio de Cron. Como te decía más arriba, los cron jobs o tareas cron sirven para automatizar tareas para que se ejecuten en momentos específicos o a intervalos regulares. De este modo, no hace falta que intervengas tú manualmente y las tareas repetitivas (¡pero importantes!) se pueden gestionar de manera eficiente y sin errores humanos.

Algunos ejemplos de tareas cron que puedes configurar en cPanel muy fácilmente son:

  • Eliminar carpetas temporales una vez a la semana.
  • Hacer un backup o copia de seguridad de cPanel todas las noches.
  • Actualizar la lista de suscriptores eliminando las bajas de clientes una vez al día, a las 23 horas.
  • Actualizar los segmentos de Mautic todos los días, a las 8 de la mañana.
  • Optimizar la base de datos de WordPress una vez a la semana.
  • Generar y enviar informes de uso del servidor todos los lunes a las 9 de la mañana.

¿Te imaginas tener que realizar todo este trabajo de manera manual? Imposible. En cambio, si defines cron jobs en tu crontab de forma correcta, liberarás todo ese tiempo y eliminarás la necesidad de tu intervención constante.

Cómo añadir una tarea cron en cPanel

Ahora veamos cómo añadir una tarea cron o cronjob en tu crontab de cPanel con un ejemplo práctico.

1. Accede a cPanel

Lo primero, accede al panel de control de tu plan de hosting e introduce el usuario y la contraseña de acceso.

¿Tienes problemas para acceder? Échale un ojo a este artículo: Cómo entrar en cPanel.

Pantalla de acceso a cPanel

2. Localiza la herramienta «Trabajos de cron»

Una vez que hayas accedido a tu cuenta de cPanel, dirígete a la sección «Avanzada» y haz clic en la opción «Trabajos de cron».

Es posible que en tu cuenta de cPanel lo llamen de otra forma como, por ejemplo, «Tareas cron» o «Cronjobs».

Sección Avanzada de cPanel

3. Añade una cuenta de correo para recibir notificaciones

Lo primero que te pedirá cPanel es que añadas una cuenta de correo electrónico. De esta forma, cada vez que se ejecute la tarea cron, cPanel te enviará una notificación.

¡Ojo! Esto es totalmente opcional. De hecho, si configuras muchas tareas o una misma tarea se ejecuta cada poco tiempo, quizá te resulta un poco molesto estar recibiendo notificaciones continuamente y estos emails ocuparán espacio en tu cuenta.

Una opción es establecer una cuenta de correo a nivel general por si en algún momento sí quieres recibir notificaciones. Después, si añades una tarea programada de la cual no quieres que se te notifique, puedes redirigir su salida a /dev/null (BlackHole). Para ello, tienes que introducir el siguiente código al final del comando.

"tareacron" > /dev/null 2>&1

Lo que nos indica /dev/null 2>&1:

  • 1= a la salida estándar (STDOUT)
  • 2= error estándar (STDERR)

Por lo tanto, «2>&1» nos indica que enviamos el STDERR hacia el STDOUT y a su vez lo enviamos a /dev/null (black hole).

4. Define cada cuanto tiempo quieres que se ejecute la tarea

Ahora establece cada cuánto quieres que se ejecute la tarea cron de cPanel.

Puedes seleccionar en el desplegable una configuración común (una vez por minuto, una vez cada cinco minutos, una vez al día, etc.). Ahora bien, recuerda que la frecuencia con la que se ejecutan los cronjobs debería depender de la naturaleza de la tarea y de la necesidad de mantener la eficiencia y el rendimiento del servidor.

¿Qué quiero decir con esto? Pues que habrá cronjobs que sea correcto ejecutar a diario (copias de seguridad, actualización de listas de suscriptores, borrado de archivos temporales, etc.), mientras que otros cronjobs tendrán que ser semanales (optimización de bases de datos, rotación y compresión de logs, etc.). Y seguro que también se te ocurren más tareas que puedas dejar programadas para ejecutar una vez al mes.

Lo dicho, en este desplegable tienes todas las opciones para ejecutar cronjobs más habituales:

Configuración común de una tarea cron de cPanel

Pero también puedes realizar una configuración manual de cada cuánto tiempo quieres ejecutar esas tareas cron. Te muestro un ejemplo.

Imagina que quieres que una determinada tarea cron se ejecute cada 30 minutos, entre las 9 y las 15 horas, solamente de lunes a viernes. ¿Sabrías cómo establecerla?

  • Cada 30 minutos: en el desplegable seleccionas la opción «Una vez cada 30 minutos».
  • Entre las 9 y las 15 horas: en el campo Hora, establece «9,10,11,12,13,14,15» o «9-15».
  • De lunes a viernes: dejamos los campos Día y Mes «*» y establecemos los días concretos en el campo Día de la semana. Como solamente queremos de lunes a viernes, seleccionamos la opción «Todos los días de la semana (1-5)».

Esto quedaría de esta manera:

Ejemplo de una configuración personalizada de una tarea cron de cPanel

¡Ojo! El servicio cron toma siempre como referencia la hora configurada en nuestro sistema operativo, así que asegúrate de seleccionar bien la zona horaria para que no existan desfases.

5. Añade el comando

Por último, introduce el comando que quieres que se ejecute en la franja de tiempo establecida y pulsa en el botón «Añadir nuevo trabajo de cron».

En este caso, quiero ejecutar un script a través del comando php que se encuentra dentro de la ruta /home/usuario/public_html y que la ejecución del mismo se realice en el intervalo de tiempo que definimos anteriormente.

Asimismo, voy a enviar la salida del comando hacia el blackhole para no recibir notificaciones.

El comando a establecer sería:

php -q /home/usuario/public_html/cron.php > /dev/null 2>&1

Y quedaría de la siguiente manera:

Añadir una nueva tarea cron en cPanel

Comandos útiles para ejecutar tareas cron

Aquí tienes algunos de los comandos que te pueden ser útiles para añadir y configurar tareas cron en cPanel.

Para ejecutar scripts php, utiliza el comando:

php

Por ejemplo:

php -q /home/usuario/public_html/cron.php > /dev/null 2>&1

Puedes ejecutar un script php a través de las tareas cron con una versión diferente.

/usr/local/bin/ea-php73 /home/usuario/public_html/cron.php > /dev/null 2>&1

Para ejecutar URLs, utiliza estos comandos:

wget

Por ejemplo:

wget -O - -q "https://tudominio.com/url-ejecutar" >/dev/null 2>&1

O bien, el comando:

curl

Por ejemplo:

curl -o "https://tudominio.com/url-ejecutar" >/dev/null 2>&1

Ver, modificar y eliminar tareas cron en cPanel

En la sección «Avanzada» – «Trabajos de cron» también tienes un listado con todas las tareas cron que tienes definidas en tu cuenta de cPanel.

Además, dispones de un acceso rápido para editar tanto el comando como la frecuencia de ejecución, así como para eliminar la tarea cron que ya no necesitas.

Ver, modificar o eliminar tareas cron en cPanel

¿Alguna duda sobre lo que es cron?

Si después de leer este post sigues teniendo dudas o crees que no estás añadiendo las tareas cron en cPanel de forma correcta, no dudes en contactar el equipo de soporte. Ellos te ayudarán a realizar la configuración para que todo funcione correctamente.

Por otra parte, y a modo de consejo final, recuerda revisar los logs de tus cronjobs de forma periódica para asegurarte de que se están ejecutando correctamente y para identificar cualquier error o advertencia que cPanel te esté haciendo llegar (siempre puedes configurar notificaciones por email para recibir estas alertas).

¿Tienes dudas, pero no tienes tu hosting con nosotros? En ese caso, no dudes en dejarnos un comentario aquí abajo y trataré de ayudarte en todo lo que sea posible.

¡Puntúa este artículo!

Total votos: 12. Promedio: 3.9

María Acibeiro

Dicen que si trabajas en lo que te gusta, no tendrás que trabajar nunca más. Así que, por aquí nos veremos mucho más de lo que te imaginas 😜

No hay comentarios

Escribe un comentario