Foros del Web » Administración de Sistemas » Software para Servers »

Ejecutar un script sin tiempo de ejecución

Estas en el tema de Ejecutar un script sin tiempo de ejecución en el foro de Software para Servers en Foros del Web. Hola, estoy en un problema. El tema es que necesito que el servidor ejecute automáticamente a un horario determinado un script PHP, pero es un ...
  #1 (permalink)  
Antiguo 13/07/2011, 13:29
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 18 años, 5 meses
Puntos: 5
Pregunta Ejecutar un script sin tiempo de ejecución

Hola, estoy en un problema. El tema es que necesito que el servidor ejecute automáticamente a un horario determinado un script PHP, pero es un script que puede tardar varias horas en terminar de ejecutarse, si se cancela la ejecución antes me puede traer grandes problemas.
En otras palabras lo que pido en este thread es:
1- Programar el servidor para que ejecute un script PHP todos los días a una hora determinada.
2- Que el script no termine antes de tiempo, ya que puede que necesite estar ejecutándose durante horas.
3- Que el archivo que ejecuta el script no esté en una ubicación de acceso público, o que lo esté pero se requiera contraseña para ingresar.
4- En el caso de que esté en una ubicación pública con contraseña, necesito que cuando se ejecuta automáticamente ponga la contraseña.

Tengo un VPS, así que tengo acceso total, por eso no hay problema.


Desde ya les agradezco.
Un saludo.
  #2 (permalink)  
Antiguo 13/07/2011, 23:43
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 9 meses
Puntos: 144
Respuesta: Ejecutar un script sin tiempo de ejecución

Esta mañana respondí tu mensaje, pero justo desde de darle a Enviar, apareció un mensaje de error en la BBDD

Aquí va la respuesta de nuevo:

1- Crea un archivo php.ini (diferente al que usa normalmente php) con las opciones que necesitas y un valor de timeout tan alto como necesites

2- Desde cron ejecuta el archivo de esta manera:

0 0 * * * php -c /ruta/a/el/php.ini /ruta/al/archivo.php

En el ejemplo el archivo php se ejecutará todos los dias a las 12 pero usará la configuración del php.ini alterno que creaste en el paso 1

En teoría debe funcionar
  #3 (permalink)  
Antiguo 14/07/2011, 11:39
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 18 años, 5 meses
Puntos: 5
Respuesta: Ejecutar un script sin tiempo de ejecución

Muchas gracias, ahora lo configuraré y mañana espero que se ejecute correctamente.

Otra cosa ¿Es posible guardar en un archivo el resultado de la ejecución? Por ejemplo si en el script pongo un echo("OK"); necesito que ese OK se me guarde en algún archivo para saber que todo salió bien.
En lo posible sin usar escritura de archivos desde PHP.

Te agradezco de nuevo.
  #4 (permalink)  
Antiguo 14/07/2011, 11:43
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 9 meses
Puntos: 144
Respuesta: Ejecutar un script sin tiempo de ejecución

0 0 * * * php -c /ruta/a/el/php.ini /ruta/al/archivo.php > /ruta/archivo.log

guardará la salida del comenado en el archivo.log que hayas especificado, tambien es posible enviar el resultado vía email con algo como:

0 0 * * * php -c /ruta/a/el/php.ini /ruta/al/archivo.php | mail -s "Asunto" [email protected]

espero te sirva

Etiquetas: php, servidor, servidores-web
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 19:21.