Foros del Web » Administración de Sistemas » Unix / Linux »

ejecutar un php con cron

Estas en el tema de ejecutar un php con cron en el foro de Unix / Linux en Foros del Web. Hola, Me gustaria saber como puedo ejecutar un script en php en mi servidor Linux con el comando cron. He mirado el man de cron ...
  #1 (permalink)  
Antiguo 10/11/2004, 05:41
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Pregunta ejecutar un php con cron

Hola,
Me gustaria saber como puedo ejecutar un script en php en mi servidor Linux con el comando cron.
He mirado el man de cron y crontab y no se como hacerlo, no se cual es el comando completo. El script deberia ejecutarse cada dia.

Gracias por la ayuda!.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #2 (permalink)  
Antiguo 10/11/2004, 18:11
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
En realidad con cron se pueden ejecutar todas las tareas relacionadas con cualquier tipo asi sea bash sh php perl o cualquier script que necesites que se ejecute en cualqueir momento pero creo que con el manual no es suficiente pork la información ahí es muy limitada así que la estructura es la siguiente:

42 4 1 * * root run-parts /etc/cron.monthly

Esto significa que

42: Minutos (00-59)
4: Hora (0-24
1: Dia del mes (1-31)
*: MES(1-12)
*: Dia de la semana (1-7)

La verdad esto lo saque de un libro pero no lo he probado ojala sirva esta información

Saludos

Última edición por Koveart; 10/11/2004 a las 18:27
  #3 (permalink)  
Antiguo 10/11/2004, 18:18
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Para complementar un poco la respuesta anterior cabe decir que mires en /etc/cron.daily hay varios scripts elaborados en bash que supongo que se ejecutaran diariamente pero no he encontrado donde esta el archivo principal cron que rige el comportamiento diario, semanal y mensual de los scripts.

Ya lo encontre...

mira con vi o con emacs el archivo

vi /etc/crontab

ahi aparecera esto

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root nice -n 19 run-parts /etc/cron.hourly
02 4 * * * root nice -n 19 run-parts /etc/cron.daily
22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly
42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly
~


o parecido, el caso es que es el formato que te di el que rige el comportamiento de cada una de las carpetas donde tienes que guardar el script, por ejemplo la carpeta cron.daily guarda scripts a ejecutarse todos los dias, en el minuto 02, en la hora 4,no importa el dia de la semana.... Simplemente guarda el script en /etc/cron.daily y se ejecutará todos los días.. GENIAL

De todos modos aqui dejo un link espero sea util...

http://www.redhat.com/docs/manuals/l...cron-task.html

Saludos

Última edición por Koveart; 10/11/2004 a las 18:26
  #4 (permalink)  
Antiguo 11/11/2004, 03:09
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Pues muchas gracias por el esfuerzo en tu respuesta, me has ayudado mucho!!.
Lo mas importante era saber si se podia ejecutar el PHP.

Gracias otra vez!!
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #5 (permalink)  
Antiguo 11/11/2004, 03:55
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Solo una cosa mas.Me da un fallo al arrancar el demonio cron, ejecuto cron o cron start y me dice:

cron: can't lock /var/run/cron.pid, otherpid may be 1577: Resource temporarily unavailable

Que quiere decir?, que ya esta arrancado?, si es asi he puesto algo mal en el crontab porque no me ejecta el script PHP.

Gracias!.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #6 (permalink)  
Antiguo 11/11/2004, 18:21
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Por lo que veo tiene que ver con la identificacion del proceso, mira a ver si ya esta corriendo con ps y si no reinicia la máquina para que no vaya a ejecutar un proceso dos veces.

lo otro que se me ocurre es que mires los permisos que tiene el archivo en cuestion. Tal vez esto tambien sea de utilidad.

http://www.computing.net/linux/wwwbo...rum/26397.html
http://www.tech-geeks.org/contrib/md...ntab-howto.htm

Cualquier cosa seguiremos intentando.


Saludos

Última edición por Koveart; 11/11/2004 a las 18:45
  #7 (permalink)  
Antiguo 18/11/2004, 04:21
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
He probado a reiniciar el pc entero y he probado simplemente a que cierto momento me haga un ls:

30 11 * * * ls /etc/ >hola.txt

Pues no me lo hace.
Gracias por la ayuda!.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #8 (permalink)  
Antiguo 18/11/2004, 09:11
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Me parece que tienes que ejecutar el script y mirar los PAT para que se ejecuten. Cuando quieres ejecutar un ls tienes que crear el script y guardarlo, para que no haya conflictos, guarda el script en la carpeta especificada para cada uno de ellos. Es decir que metas el script en la carpeta que está determinada para ese fin. En realidad no sé como funciona el cron pero mételo en la carpeta determinada que le dices en crontab, ahora puedes crear otras carpetas. Creo que lo que hace crontab es ejecutar los scripts que hay dentro de cierta carpeta. Sigue intentando

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:41.