- Detalles
- Por Juan Padial
- En Web y Servidores
- Visto: 18283
La automatización de tareas en un servidor web es algo a veces tan necesario como que la web esté en línea. Los llamados cron jobs son trabajos o tareas que se realizan a intervalos regulares de forma automática. Vamos a ver como configurar un cron job en Cpanel para ejecutar un script php.
Los cron jobs para ejecutar archivos PHP
He podido encontrar muchas instrucciones para ejecutar un script PHP a través de un cron job y la mayoría no me han funcionado. He probado incluso el uso del comando linux para abrir archivos, pero el que me ha funcionado a la primera ha sido WGET, comando con el que se abrirá el archivo especifica con el mismo comportamiento que accediésemos a él a través de un navegador.
Para empezar ve a la página principal de Cpanel y baja hasta el tab "Avanzado". Aquí encontrarás un botón hacia la configuración de Cron jobs.

Este enlace te llevará a una pantalla en la que podrás seleccionar entre una configuración de Cron jobs standars o avanzada, elige estándar. Esto te llevará a la pantalla de configuración de la tarea programada.
Lo primero que te pedirá el sistema es una dirección de correo electrónico donde se enviaran las notificaciones oporutnas cada vez que se ejecute el cron. Ahora ya puedes pasar a la configuración del cron propiamente. Es tan sencillo como introducir el comando linux a ejecutar y cuando quieres que se ejecute, puedes programarlo desde cada minuto a todos los días 1 de cada mes, etc...
Lo único complicado es introducir el comando correcto si no manejas linux. En mi caso, quería ejecutar un script php cada 5 minutos. El comando para abrir archivos php es algo así:
php -f public_html/ruta/del/archivo/nombrearchivo.php
Este comando no me funcionó, recibía el mensaje de error en la apertura del archivo, leyendo por internet encontré este otro comando:
/usr/local/bin/php /home/nombre_usuario/ruta_archivo/archivo.php
Algunos incluian -q y -f pero el caso es que tampoco me funcionaba. Ahora realmente pienso que fue un error en la escritura de la ruta del archivo, pero no lo voy a probar pues finalmente me está funcionando a la perfección con wget, aquí va el comando:
wget -nv -O /dev/null http://www.dominio.com/archivo.php
Y si no quieres recibir el email cada vez que se ejecute el cron:
wget -nv -O /dev/null http://www.dominio.com/archivo.php >/dev/null 2>&1
Espero que todo esto sobre configuración de cron jobs os sirva a vosotros y os ahorréis todo el tiempo que yo gasté en encontrar una solución.
Actualizo el post porque encontré este otro comando que también funciona a la perfección:
cd /home/nombre_usuario/ruta_archivo/ ; php archivo.php
Y para no recibir email cada vez que se ejecute el cron job:
cd /home/nombre_usuario/ruta_archivo/ ; php archivo.php >/dev/null 2>&1
Creado el 04 04 2011 Actualizado el 26 02 2013
