Configurar cronjob para ejecutar un script php (cpanelX)

¿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

    PHP      3 Agosto, 2007      12602 lecturas      12 comentarios

    1. Alex

      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.



    2. Chicoblog

      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! ;)



    3. Nevil

      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!



    4. gafeman

      @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



    5. Angelfire

      Creo que el problema está en programar el cron utilizando php, yo por el ejemplo no tengo ni idea de como empezar :P



    6. HUGO

      QUISIERA SABER COMO PONER LA HORA EN MI LIBRO DE VISITAS…



    7. 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



    8. 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



    9. xcvxcv

      @Alain: cvcxvxcvxcv dvsd dsfsd fsd fsdferwerew ewr wr wer



    10. Marco

      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



    11. 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…



    12. 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









    Additional comments powered by BackType