Preferencias

Guardar el resultado de una tarea cron en un fichero

En este tutorial aprenderás a guardar en un fichero lo que muestra una tarea cron cada vez que se ejecuta, incluidos los errores, para poder comprobar después si ha funcionado.

Muchas tareas cron terminan con >/dev/null 2>&1. Ese final descarta todo lo que el comando muestra al ejecutarse, tanto los mensajes normales como los errores. Es práctico para no recibir un correo en cada ejecución, pero si la tarea falla no queda ningún rastro de lo que ha pasado. Si necesitas saber qué ocurre en cada ejecución, puedes enviar esa información a un fichero de tu cuenta.

Pasos a realizar

1. Una vez hayas accedido a tu cuenta cPanel, ve a la sección “Avanzado” y haz clic en “Tareas cron”.

Sección Avanzado de cPanel con la herramienta Tareas cron destacada

2. Baja hasta el apartado “Tareas cron actuales” y pulsa “Editar” en la tarea que quieres revisar.

Apartado Tareas cron actuales de cPanel con el enlace Editar de una tarea destacado

3. En el campo “Comando”, sustituye el final >/dev/null 2>&1 por >> /home/miusuario/cron-tarea.log 2>&1, cambiando miusuario por tu usuario de cPanel. Lo tienes en la página de inicio de cPanel, en “Información general”, como “Usuario actual”.

4. Pulsa “Editar línea” para guardar el cambio.

Edición de una tarea cron en cPanel con el comando que guarda la salida en cron-tarea.log y el botón Editar línea destacados

Por ejemplo, una tarea que antes era así

/usr/local/bin/php /home/miusuario/public_html/script.php >/dev/null 2>&1

quedaría así después del cambio

/usr/local/bin/php /home/miusuario/public_html/script.php >> /home/miusuario/cron-tarea.log 2>&1

Qué hace cada parte

El doble signo >> añade el resultado al final del fichero sin borrar lo anterior, así conservas el historial de todas las ejecuciones. Con un solo > el fichero se sobrescribiría cada vez y solo verías la última. El 2>&1 hace que los errores se guarden en ese mismo fichero junto al resto de mensajes.

Te recomendamos guardar el fichero en la carpeta principal de tu cuenta, como en el ejemplo, y no dentro de public_html. Así su contenido no se podrá consultar desde internet.

Saber cuándo se ejecutó la tarea

Si quieres que cada ejecución quede anotada con su fecha y hora, agrupa el comando con date de esta forma.

{ date; /usr/local/bin/php /home/miusuario/public_html/script.php; } >> /home/miusuario/cron-tarea.log 2>&1

Evita usar el símbolo % en el comando, por ejemplo para dar formato a la fecha, porque cron lo interpreta como un salto de línea y la tarea no se ejecutará como esperas. Si lo necesitas, escríbelo como \%.

Consultar el resultado

Abre el “Administrador de archivos” de cPanel. En tu carpeta principal encontrarás el fichero cron-tarea.log, que puedes abrir con “Ver” o bajarte con “Descargar”. Aparecerá después de la primera ejecución de la tarea tras el cambio.

Administrador de archivos de cPanel con el fichero cron-tarea.log seleccionado en la carpeta principal y el botón Ver destacado
Importante
El fichero crece con cada ejecución y ocupa espacio de tu cuenta, sobre todo si la tarea se ejecuta cada pocos minutos. Cuando hayas terminado de revisarlo, vuelve a poner >/dev/null 2>&1 al final del comando y elimina el fichero.

Recibir el resultado por correo

Si prefieres recibirlo por correo en lugar de guardarlo en un fichero, quita >/dev/null 2>&1 del comando. Cada vez que la tarea muestre algo, cron lo enviará a la dirección indicada en “Email cron”, en la parte superior de la misma página. Ten en cuenta que en una tarea que se ejecuta con mucha frecuencia puede suponer muchos correos. Tienes más detalle en nuestra guía Crear una tarea cron en cPanel.

Apartado Email cron de cPanel con la dirección actual y el campo para cambiarla destacados