MarcosBL
14/03/2009, 16:45
Si, pero como te explican, si tu script tarda más de los 15 segundos en terminar, por lo que sea (server lento, muchos datos a procesar, etc...), se te van a solapar dos instancias del .php ejecutándose al mismo tiempo, lo que puede producir inconsistencia de datos, etc... si quieres hacer actualizaciones muy habituales, asegúrate que tu php crea un fichero "ejecutandome.pid" por ejemplo, y antes de empezar a hacer operaciones, si existe el fichero "ejecutandome.pid", no haces nada, poruqe es que hay otro en ejecución. Cuando tu script acabe su proceso, el solito elimina el "ejecutandome.pid", de forma que en el próximo paso de cron ya no lo encuentre y se ejecute normalmente.
Ummm...gracias a los dos!
Yo lo que queria hacer es que me ejecutase un script que tengo para actualizar mi pagina web (es un juego), y tenia pensado ejecutarlo cada dos segundos...
Estonces estaria bien asi?? :
Código:
#!/bin/sh
for (( i=0; i<=3; i++ ))
do
/usr/local/bin/php5 -f /home/mygame/www/actualizador_continuo.php & >> /dev/null 2>&1
sleep 15
done
No entiendo por qué se empezarian acumular (siento mi ignorancia, pero por ahora el unico lenguaje que conozco es php...XD)...Ese codigo qué hace? Ejecuta el script que yo quiero, y luego espera 15 segundos para volver a empezar??
Muchisimas gracias por la ayuda!!
Hazte un bash que ejecute algo y duerma X tiempo, esto se ejecutaría 4 veces por minuto:
Código:
#!/bin/sh
for (( i=0; i<=3; i++ ))
do
/bin/sh /usr/share/scripts/miscript.sh & >> /dev/null 2>&1
sleep 15
done
Lo único que como te dicen si se retrasa algo se te van a ir acumulando decenas, cientos o miles de crones, posiblemente sobrecargando el servidor.
hubahubi
13/03/2009, 18:46
No es posible hacerlo con crontab, la razon es bastante sencilla si tu script en php tarda unos 5 segundos en realizarse (aunque pueda ser infinitamente menos) en el caso que el sistema este sobrecargado (75% de uso de la cpu o mas) tu script puede retrasarse i pisarse con el siguiente. Una solucion seria hacer un programa que te lance este script cada x segundos, pero con crontab no creo que puedas.
Hola, estoy intentando hacer un cron que ejecute un archivo de php cada x segundos...pero acabo de darme cuenta de que lo minimo es 1 minuto...Hay alguna manera de hacerlo??
Gracias