Configurar cronjob para ejecutar un script php (cpanelX)

PHP      3 Agosto, 2007      9601 lecturas      12 comentarios

¿Que es un Cronjob?

Es un proceso automatizado que se ejecuta en un intervalo de tiempo definido por el usuario

Ejemplos de uso:

  • Hacer copias de la base de datos
  • Optimizar la base de datos
  • Enviar un boletín de noticias
  • Eliminar archivos temporales de una carpeta

Requisitos:

  1. Tener la web en un servidor linux
  2. Que tu compañía de hosting te permita configurar cronjobs
  3. saber la ruta del script php que queramos ejecutar, por ejemplo:
    /home/vicia3/public_html/BD_optimizar.php

Caso practico:

Hace un tiempo adapte un script de PHPNUKE a wordpress para optimizar la base de datos mysql

Para ejecutarlo hay dos maneras:

    1. manualmente desde el navegador
    2. o automáticamente configurando un cronjobs

    A continuación voy a explicar la manera de configurar un cronjob desde un panel de control cpanelX (que sepa lo utilizan dattatec y lunarpages)

    Pasos:

    1. Sigue los pasos de este tutorial para instalar el script para optimizar la base de datos mysql (Apunta la ruta del fichero donde guardas el script)
    2. Dirigete a la pantalla principal del panel de control cpanelx de tu hosting
    3. Busca la opción Cron jobs:
      cronjobs
    4. Una vez dentro puedes seleccionar el modo para crear o editar los cronjobs:
      Yo recomiendo hacerlo en modo estándar, es más fácil e intuitivo
      modo cronjobs
    5. Como podréis ver en la imagen inferior el cronjob esta configurado para ejecutar el script php: /home/vicia3/public_html/BD_optimizar.php
      el día 1 de cada mes por la media noche
      configuracion cronjobs
      Para que podáis copiar el comando linux es el siguiente:
      cd /home/vica3/public_html/ ; php BD_optimizar.php

      Recuerda que tienes que cambiar la ruta segun vuestro servidor
    6. Una vez creado para finalizar le dais al botón Save Crontab

    Notas:

    • Puedes hacer que se ejecute dos días a la semana, por ejemplo:
      seleccionas monday (lunes), pulsa la tecla control (Ctrl) y seleccionas Wednesday (miércoles)
    • Seguramente hay varias maneras de hacerlo pero os aseguro que esta funciona correctamente

    Mas información:

    http://www.adminschoice.com/docs/crontab.htm

    Compartir   twitter   del.icio.us   webeame   meneame   stumbleupon   mr.wong   ?  



    • Criss
      Hola antes que nada quiero agradecer el tutorial pero tengo una duda es sobre ejecutar un tarea programada externa desde el cpanel por ej tengo la direc http://dominio.com/scritp.php << necesito crear un cron job de esa url pero el caso es que en ese host no tengo habilitado el cron job desde el cpanel.

      Pero desde mi otro host tengo habiltiado el cron job

      Mi duda es si el comando a utilizar seria el siguiente:

      ej: cd http://dominio.com/scritp.php

      Desde ya muchas gracias por su ayuda y disculpen mi ignorancia.

      Saludos
    • FJV
      Muy buena aportación.

      Solo que ahora tengo otra duda, porque me provoco un error en la terminal cada vez que se ejecuta mi Cron Job?? (X_X ')

      Me indica al así como:

      You Terminal unknow...

      blablabla...
    • Gracias!!!
      Me fué de excelente utilidad, ahora solo investigar cómo puedo saber el path de mi crontab para poder modificar los cronjobs desde php...

      Saludos
      MASC
    • xcvxcv
      @Alain: cvcxvxcvxcv dvsd dsfsd fsd fsdferwerew ewr wr wer
    • mandrake
      Disculpen y si no uso el cpanel es que yo monte mi propio servidor web apache en linux pero de igual manera necesito que se ejecute un script cada segundo para actualizar una base de datos y mostrar estadisticas en tiempo real
    • Alain
      No entiendo bien como configurar mi cron para que corra cada semana, yo necesito que mi cron corra todos los domingo a la media noche, pero no encuentro con configurarlo para que funcione asi, POR FAVOR ALGUIEN SABE COMO? se lo agradeceria mucho
    • HUGO
      QUISIERA SABER COMO PONER LA HORA EN MI LIBRO DE VISITAS...
    • Creo que el problema está en programar el cron utilizando php, yo por el ejemplo no tengo ni idea de como empezar :P
    • @Nevil: para configurar un cronjob sin acceder ni a la consola, ni al cpanel a lo mejor podrias con un script php, utilizando la funcion shell_exec para ejecutar un comando linux y configurar el cronjob

      pero seria mucho mas facil desde el cpanel ya que no en todos los servidores se puede ejecutar shell_exec, yo de ti buscaria el icono cronjob en el cpanel y seguiria los pasos de arriba que van a ser los mismos

      un saludo
    • Estimado, Cómo puedo hacer para que se ejecute un archivo php que manda un pequeño boletin cada 15 días a una lista que tengo en una bd. Y además como podría instalar y configurara automaticamente el cron sin neccesidad de entrar a el, desde un archivo tipo instalar.php! Uso cPanel!
    • Interesante, lo tomare mucho en cuenta ;)

      Otra cosa, cuando se entra directamente al dominio "http://www.viciao2k3.net/" Sale una pagina de LunarPages en HTML, Le tube que agregar a "http://www.viciao2k3.net/" un index.php, para poder ver la pagina quedando asi "http://www.viciao2k3.net/index.php" Ojala borren el index.html y asi no muestre el lapagina de HTML de LunarPages :P

      Saludos! ;)
    • Genial. Una información de primera, que en muchas ocasiones había deseado conocer, y nunca he sabido cómo.

      Quiero aportar la forma en que el panel de control Plesk 8.1.0 (el de mi host) administra esta herramienta:

      1.- Nos situamos en "Inicio"
      2.- Vamos al dominio deseado (en mi caso zumbe.net)
      3.- Pulsamos en el botón "Tabla Cron" (el icono es un reloj)
      4.- Escogemos el usuario del sistema que realizará la tarea.
      5.- Pulsamos en "Programar Una Tarea Para zumbe" (O el nombre del usuario seleccionado)
      6.- Rellenamos los campos de texto con la información de "minuto, hora, dia del mes, mes, dia de la semana" y por último el "comando" a ejecutar.
      7.- Pulsamos "Aceptar"

      Eso es todo.
    blog comments powered by Disqus