Tareas cron o Cronjobs de cPanel

Tareas cron
5
(1)

¿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 🙂 .

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.

Algunos ejemplos de tareas cron que puedes configurar en cPanel 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.

¿Te imaginas tener que realizar todo este trabajo de manera manual? Imposible.

Cómo añadir una tarea cron en cPanel

Ahora veamos cómo añadir una tarea cron o cronjob en 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.).

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

Pero también puedes realizar una configuración manual de cada cuanto tiempo queremos ejecutar nuestras 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

Algunos de los comandos que te pueden ser útiles a la hora de añadir y configurar tareas cron en cPanel son:

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, o eliminar la tarea cron que ya no necesitas.

Ver, modificar o eliminar tareas cron en cPanel

¿Alguna duda?

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.

¿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: 1. Promedio: 5

No hay comentarios

Escribe un comentario