Configuración Cron Jobs en Cpanel para ejecutar un script php
- Detalles
- Categoría: Web y Servidores
- Última actualización el Jueves, 17 Noviembre 2011 19:48
- Escrito por paco
- Visto: 5466
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
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.
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.
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?
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!






RSS
Perfil
Artículos
RSS