Configuración Cron Jobs en Cpanel para ejecutar un script php

La automatización de tareas en un servidor web es algo a veces tan necesario como que la web esté en línea. Vamos a ver como configurar un cron job en Cpanel para ejecutar un script php.

No sabes que es un cron job?? Es una tarea automática que se realiza cada cierto tiempo, por supuesto el intervalo lo puedes especificar tú con total libertad.

He probado varias soluciones entre ellas usar el comando linux para abrir archivos, pero el que me ha funcionado ha sido WGET, comando con el que se abrirá el archivo con comportamiento de 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 standar. 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


Cerrar


Comentarios (18)

Community Builder Avatar
Gabriel
(13.01.2012 (16:22:39))
cron jobs Sí No Hola, me sirvió el primero que pusiste:

php -f public_html/ruta/del/archivo/nombrearchivo.php


Muchas gracias por tu ayuda!!!
Community Builder Avatar
compara.do
(08.12.2011 (21:22:29))
Excelente aporte Sí No Muchas gracias por el aporte. Me sirvió mucho.

Saludos,


OM
Community Builder Avatar
Gustavo
(05.11.2011 (04:32:04))
Gracias Sí No Muchas gracias por el tiempo que te tomaste para explicar cómo realizar este tipo de tareas automáticas.
Community Builder Avatar
Leo
(29.10.2011 (18:17:51))
Agradecido Sí No Hola, espero que todos se encuentren muy bien, quiero agradecer a Paco por compartir esta información. Desde hace un tiempo había estado probando diferentes comandos (sin éxito) para llamar cada día a un archivo php y con esta opción que colocas aquí al fin logre que funcionara. Quiero deciros que para los que trabajan con Presta Shop e intentan configurar la regla crontab para los vales regalos de cumpleaños, esta solución es la ideal, sin embargo les adelanto que el archivo php al que se va a llamar con la regla cron esta para ser llamado diariamente, de manera que si intentan establecer 5 minutos como tiempo en el crontab para llamar al archivo por razones de probar si funciona, déjenme deciros que no les resultara ok. llamenlo en el cron una vez al día. Una vez mas muchas gracias Paco por compartir tu experiencia, de seguro que esto nos ayuda a muchos y gracias a los usuarios que se han tomado el tiempo de comentar y hacer saber que les ha resultado esta solución.
Saludos.
Community Builder Avatar
Silver
(17.09.2011 (22:06:40))
:D Gracias Sí No Oye miil gracias por la aportación me pasó lo mismo que a ti, andar buscando tantos comandos para nada. Me ahorraste mas tiempo de investigación, saludos!
Community Builder Avatar
Matthew Seiko
(09.09.2011 (04:54:16))
consegui una web pero no se que codigo colocar Sí No consegui la siguiente pagina http://www.cron-job.org para ejecutar los cron jobs gratis desde otra web pero resulta que no me permite colocar el codigo wget dice que no es soportado, alguien sabra como colocarlo?
Community Builder Avatar
paco
(30.08.2011 (13:11:08))
Sí No Matthew si no te deja quitar -php -f siento no poder ayudarte, como dije en el post, con ese comando no funcionaba y no encontré solución. ¿Por qué no preguntas al soporte del servicio de hosting?
Community Builder Avatar
Matthew Seiko
(29.08.2011 (22:33:37))
tengo mi web en 000webhost.com Sí No y tengo un pequeño problema que en el cron jobs no me permite poner el codigo al principio sino que ya esta puesto -php -f php/home/user/ y deja en blacn olo siguiente para completar la diireccion del archivo, pero el que yo uso termina en > dev/null y no lo agarra. Saben algo de eso? estoy instalando un autoresponder que compre.
Community Builder Avatar
rides
(19.08.2011 (22:22:41))
muy bueno Sí No gracias por el aporte compabre me a servido de mucho
Community Builder Avatar
luman
(22.06.2011 (20:15:12))
Sí No Gracias por el tip me ha sido util...
Community Builder Avatar
Nuker
(27.05.2011 (00:07:15))
Sí No Todavía hoy sigue ayudando este post.

Muchas gracias!!
Community Builder Avatar
Manolo
(26.05.2011 (23:21:27))
Sí No @Durath tendrás que tener un software tipo cPanel que te permita la ejecución periódica tal y como se explica en el post.
Community Builder Avatar
Durath
(26.05.2011 (23:20:34))
Sí No Buenas, estoy iniciandome en el uso de cron y no me aclaro mucho.

La cuestión es que, yo he colocado mis ficheros php en un servidor web con linux, a continuación como he de hacerlo para que me funcione el cron en ese servidor y me ejecute mi script.php cada minuto? Es de decir, que tengo o que necesito subir al servidor para que me funcione cron?
Community Builder Avatar
paco
(26.05.2011 (23:18:36))
Sí No @Oswaldo importante aportación. Si me das permiso lo incluyo en el post!!
Gracias!!! ;)
Community Builder Avatar
Oswaldo
(26.05.2011 (23:14:12))
Sí No Hola qué tal?

Muchas gracias por publicar este artículo, el uso del comando wget de maravilla para lo que necesitaba hacer :D

Yo le hice una modificación, ya que el script que ejecuto debe recibir parámetros, entonces lo logré así:

wget --post-data 'componente=transacciones&operacion=actualizarsaldos' http://www.eldominio.com/index.php

Espero que esto le sirva a alguien que necesite hacer lo mismo.

Nuevamente gracias y muchos éxitos en los proyectos!

Smileys

:confused::cool::cry::laugh::lol::normal::blush::rolleyes::sad::shocked::sick::sleeping::smile::surprised::tongue::unsure::whistle::wink: