Desarrollo y bases de datos

Crear y ejecutar tareas cron (Cronjobs) en cPanel

Revisado el · cron

Las cronjobs son tareas (comandos) que se ejecutan de forma automática en un intervalo especificado, esto nos permite automatizar ejecuciones que de otra forma serían imposibles.

Aunque se pueden gestionar desde la terminal (comando crontab), la sección Tareas cron de cPanel nos facilita la configuración desde una sencilla interfaz.

Correo electrónico para notificaciones

Es el correo donde recibiremos notificaciones respecto a cada ejecución, sea por error o para mostrar el resultado que devolvió el comando ejecutado.

Agregar nuevas tareas

Desde agregar una nueva tarea cron podemos especificar el intervalo en el que queremos sea ejecutada, podemos usar el desplegable para seleccionar un intervalo común o definir nosotros de forma específica pudiendo definir el minuto, hora, día, mes o día de la semana.

En comando establecemos aquello que queremos que se ejecute, por ejemplo, si disponemos de un fichero cron.php en public_html que realiza tareas de mantenimiento debemos indicar:

php /home/usuario_cpanel/public_html/cron.php >/dev/null 2>&1

En este caso hemos añadido al final >/dev/null 2>&1 esto hará que el resultado de la ejecución se deseche, evitando recibir continuos correos acerca de la tarea (en tareas que se ejecuten una vez al día puede ser util recibirlo, pero si es una ejecución cada pocos minutos, acabará colapsando la cuenta de correo).

Ejecutar una URL desde cron

Cuando una aplicación proporciona una URL de tareas, puedes solicitarla con curl:

curl --fail --silent --show-error --max-time 300 https://tudominio.com/ruta-de-cron

Durante las primeras pruebas conserva la salida y el correo de notificaciones para ver el código de error. Cuando confirmes que funciona, puedes guardarla en un registro:

curl --fail --silent --show-error --max-time 300 https://tudominio.com/ruta-de-cron >> /home/usuario_cpanel/logs/cron-url.log 2>&1

Es preferible ejecutar directamente el comando PHP o CLI de la aplicación cuando exista, porque evita DNS, SSL y una petición web completa. No incluyas contraseñas o tokens permanentes en una URL que pueda quedar guardada en historiales y registros.

Elige un intervalo superior al tiempo máximo de ejecución. Si una llamada tarda cinco minutos y programas otra cada minuto, las tareas pueden solaparse y agotar procesos. La propia aplicación debe implementar un bloqueo cuando no admita ejecuciones simultáneas.

Tareas cron actuales

En tareas cron actuales disponemos de un listado de las cronjobs añadidas para poder editar o eliminar según se requiera.

También te puede ayudar

  1. Eliminar correos antiguos automáticamente
  2. Binarios y herramientas disponibles FFmpeg, Tesseract, ImageMagick, cURL y más
  3. Desarrollando y automatizando vía API de cPanel
  4. Ejemplos de reportes en CSV usando la API de cPanel