Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Wargolth en 25 Enero 2009, 16:59 pm



Título: Busco: puesta en marcha de un sript a determinadas horas automaticamente
Publicado por: Wargolth en 25 Enero 2009, 16:59 pm
Hola a todos,

Mi andadura por PHP continúa y el punto que me bloquea ahora es el siguiente. Me gustaría que un cierto script que voy a escribir, se ejecutase automáticamente con la frecuencia que yo le imponga por ejemplo a diario a las 8 de la mañana. El script recorrería una base de datos actualizándolos.

Por ejemplo: poniendole a una base de datos con empleados un boolean "ha_venido_a_trabajar_hoy" como false para que a medida que llegan cada uno y entran en la página se vayan cambiando a true.

El objetivo es que todas las noches este script se ejecute sólo a una determinada hora y que no dependa de si yo me acuerdo o no. Tengo la idea de que será posible hacerlo pero ignoro qué forma va a tener, ya sea programa, propiedad de mi servidor, o lo que sea que tenga que hacer.

¿Qué estoy buscando, una función?¿Hay algún tipo de soporte que haga esto en PHP?

Un saludo y gracias por vuestra ayuda por anticipado. Si son necesarias más precisiones pedídmelas.

Iago


Título: Re: Busco: puesta en marcha de un sript a determinadas horas automaticamente
Publicado por: Makiz0rz en 25 Enero 2009, 17:10 pm
Lo más útil que veo yo es que, en el ordenador en el que se ejecuta ese script, se hagan unas reglas con el comando cron, que permite hacer acciones a determinadas horas. Mírate el man cron (sobre Linux) y tendrás toda la información necesaria.


Título: Re: Busco: puesta en marcha de un sript a determinadas horas automaticamente
Publicado por: Kalith en 25 Enero 2009, 17:23 pm
yo vi un sistemas en un maraton de programación que hacia algo parecido, lo que hacia era con ajax iva actualizando y tenia un timer que se comparaba con la hora obtenida del sistemas y si era la hora pues daba el login puedes hacer lo mismo


Título: Re: Busco: puesta en marcha de un sript a determinadas horas automaticamente
Publicado por: eLank0 en 26 Enero 2009, 00:06 am
Hola,

He encontrado un tutorial googleando que creo que resolverá tu cuestión:

http://www.programacion.com/php/articulo/adr_phpcron/

Salu2


Título: Re: Busco: puesta en marcha de un sript a determinadas horas automaticamente
Publicado por: Wargolth en 5 Febrero 2009, 15:54 pm
Si no he entendido mal (que sería lo más probable), hace falta que mi ordenador tenga Linux y que esté encendido a la hora a la que quiero lanzar el script. Es decir, no se hace automáticamente nada más que si mi ordenador está activo.

Estoy en lo cierto o no?

Gracias por la ayuda. De hecho ya había caído alguna vez sobre esto pero lo había descartado al ver que necesita Linux. Sigo siendo usuario fiel de Windows...

Wargolth


Título: Re: Busco: puesta en marcha de un sript a determinadas horas automaticamente
Publicado por: alone-in-the-chat en 5 Febrero 2009, 17:40 pm
???

Tan fiel usuario de windows que no sabes que tb existen herramientas cron para el mismo...




Saludos¡¡


Título: Re: Busco: puesta en marcha de un sript a determinadas horas automaticamente
Publicado por: ^Tifa^ en 6 Febrero 2009, 21:36 pm
No todo el mundo sabe BATCH yo al menos no se BATCH de Windows....

Si tienes MySQL desde la version 5.1.x en adelante, create un evento dentro del mismo MySQL que funcionaria como una tarea programada.

Por ejemplo :

Código
  1.  
  2. mysql> CREATE EVENT EVENTO
  3. ON SCHEDULE
  4. EVERY 24 HOUR
  5. DO
  6.  
  7. UPDATE TABLA1 SET REGISTRO1 = 'ALGO' WHERE REGISTRO1 = 'ALGUITO';
  8.  
  9.  

Con lo anterior si lo creas a las 8:00 pm de la noche se ejecutara cada 24 horas.. o sea todos los dias a las 8 de la noche siempre y cuando la PC este encendida.

Para crear un evento en MySQL requieres que el usuario tenga el privilegio SUPER o hacerlo con el usuario root de MySQL.


Título: Re: Busco: puesta en marcha de un sript a determinadas horas automaticamente
Publicado por: Wargolth en 23 Abril 2009, 23:04 pm
Buenas,

Perdón por revivir el tema pero es que por vueltas que da la vida, me he vuelto a meter en mi proyecto, y convergí de nuevo hacia la misma piedra: como correr scripts (un .PHP que me actualice una base de datos cada día).

El problema es que para las soluciones que me habían puesto por aquí, era necesario el tener el ordenador encendido. Curl, el evento SQL y alguna otra. Me interesa la opción del cron pero si pudiese ponerla de alguna manera en el servidor. Es decir hacer lo mismo que me proponíais algunos pero en el servidor en vez de en mi ordenador para que cuando mi PC esté apagado el script también funcione.

Gracias por la ayuda. Tanto en buscar como en Google no hago más que girar en círculos...

Wargolth