Cron Jobs

NeB1

Hola buenas,

Soy un poco noob en sistemas unix, y no sé que comando hay que usar si quiero configurar un cron job que cada día, a las 10 de la mañana, ejecute cierto script PHP. Según he leído el comando debería ser algo así:

00 * * * /usr/local/bin/php -q /home/nosdom/public_html/maintenance.php

En teoría esos dos 0 indican que se ejecute cada día a als 12 de la madrugada, pero no sé que hay que poner para que sea a las 10 de la mañana, y tampoco el comando que precede a esa linea.

Es decir, no sé si es:

CRON 00 * * * /usr/local/bin/php -q /home/nosdom/public_html/maintenance.php

CRON TABS (...)

CRONJOBS (...)

Voy googleando mientras, pero si me lo solucionais os querré mucho xD

B

Pues si lo quieres a las 10 pon 10 alma de cántaro(22 seria 10 de la noche). Sobre el comando para ejecutarlo depende de si tiene permisos de ejecución, pero con php ruta_del_fichero deberia funcionarte.

NeB1

pero que comando uso para que se añada a la lista de cron jobs, no que comando uso para que ejecute el php.

sobre lo de las horas, es que había leido esto:

  • * * * * => Execute every minute
    0 * * * * => Execute every Hour
    0 0 * * * => Execute every mid-night
    0 0 0 * * => Execute every Month
    0 0 0 0 * => Execute every Weekday

así que no sé si será:

0 10 * * *

EDIT-----------------

Nah! que estoy tonto, no hace falta ningún comando, simplemente editar el archivo

/etc/crontab

y añadirle

30 8 * * * root /usr/local/bin/php -q /var/www/nosdomains/blognosdom/periodico/rss-reader/rss-colector.php

Angel89

Sintaxis
El formato de configuración de cron es muy sencillo.
• El símbolo Numeral "#" es un comentario, todo lo que se encuentre después de ese carácter no será ejecutado por cron.
• El momento de ejecución se especifica de acuerdo con la siguiente tabla:

  1. Minutos: (0-59)
  2. Horas: (0-23)
  3. Días: (1-31)
  4. Mes: (1-12)
  5. Día de la semana: (0-6), siendo 1=Lunes, 2=Martes,... 6=sábado y 0=Domingo
    Para especificar todos los valores posibles de una variable se utiliza un asterisco (*).
    • La última columna corresponde al path absoluto del binario o script que se quiere ejecutar.
    Ejemplos
    Por ejemplo:
    30 10 * * 1 /usr/bin/who >> /home/quien.tex
    Ejecuta la orden who todos los lunes a las 10:30 y guarda la salida en el archivo quien.tex
    Para especificar dos o más valores en cada variable, estas deben estar separadas por comas, siguiendo con el ejemplo anterior:
    0,30 * * * 1 /usr/bin/who >> /home/quien.tex
    Ejecuta la orden who todos los lunes cada media hora y guarda la salida en el archivo quien.tex
    Si queremos que se ejecute cada 15 minutos sería
    0,15,30,45 * * * * /usr/bin/who >> /home/quien.tex
    ó
    */15 * * * * /usr/bin/who >> /home/quien.tex
    Este otro es para programar el apagado de la PC. En este caso todos los sábados a las 21.30
    30 21 * * 6 /sbin/shutdown -h now

de nada

NeB1

gracias no obstante #4 ^^

la duda es si existe el comando "php" haciendo lo que he hecho de

/usr/bin/php

gracias a los dos!

B

crontab -u USUARIO -e

la linea para que se ejecute a las 10 es:

00 10 * * * /usr/local/bin/php -q /home/nosdom/public_html/maintenance.php

pd:locate php para ver la ruta, de todas formas poniendo solo php te deberia funcionar.

Angel89

#5 fácil... te refieres a si está en el path... esa ruta

para saberlo 'echo $PATH' si está, esque puedes ejecutar 'php' a secas, sino, o lo añades al path, o pones la ruta completa en el cron

dagavi

Pero a lo mejor duda de si cron mantiene el entorno o no, y por lo que recuerdo y acabo de ver buscando en google, no, no los mantiene.

Aunque se pueden configurar las variables de entorno con los que se ejecutarán las órdenes, y siendo el directorio /usr/local/bin el que contiene el php, sería raro que no estuviera en el path.

Fr4nk0

Neb1 pon en el terminal: which php y ahi te pondrá la ruta donde se encuentra el ejecutable php, o vacio en caso de que no esté instalado. Si la ruta del php está en tu PATH (echo $PATH) puedes poner solo php .... y si no está pues debes poner la ruta completa para ejecutar el comando. Si no quieres poner la ruta (en caso de que no esté en el PATH) edita tu .profile o .bashrc
y añade:

PATH= ruta_del_php:$PATH

Con esto añades la ruta del php a lo que ya habia en el path

NeB1

jejeje, gracias a todos, al final puse la ruta completa del php y hoy a las 8:30 se ha ejecutado la tarea.

Usuarios habituales