Continúe monitoreando el servidor web y descargue los archivos recién agregados

Continúe monitoreando el servidor web y descargue los archivos recién agregados

¿Cuál es la mejor manera de monitorear continuamente un servidor web (HTTP) y descargar archivos recién agregados con min. ¿Retraso (idealmente < 1 minuto de retraso)?

Respuesta1

Supervisión

En primer lugar, para el seguimiento te recomiendo utilizarNagios, la fuente principal es gratuita, pero si necesita una GUI, debe pagar por ella, pero vale la pena pagar esa cantidad.

También puedes usaricingá,PRTG, o lo que más te convenga.

Collectd (Collection Daemon) también es una herramienta de monitoreo gratuita que puede descargar usando yumderivados de RHEL oapt-get basados ​​en Debian. Puedes leereste papelsi quisieras ir con Collectd.

Tarea que se ejecuta cada x < 1 minuto

Para la segunda parte de tu pregunta, por hacer un trabajo cada x veces donde la x es por menos de un minuto periódicamente, como sabes no puedes usar Cronjobs, ya que puedes usar algunos trucos explicados porGilles en esta preguntapara hacer lo que quieras.

Será mejor tener un script para lo que necesita y ejecutarlo para siempre, incluso al arrancar si lo necesita. Puede tener una sintaxis simple como se muestra a continuación:

while true; do yourJob; sleep someTime; done

O incluso puede optar por scripts más complejos según lo que necesite.

También puedes usar watchel comando. Por ejemplo:

watch -n1  command

Ejecutará commandcada segundo y para siempre.

Como habrás adivinado, también puedes ejecutar tu script de shell watchsi necesitas ejecutar solo un script simple cada x veces menos de un minuto, y no uno complejo.

La decisión es tuya.

Respuesta2

Esto depende de un par de factores.

Si tiene control sobre el servidor web, lo más fácil sería instalar un servicio (¿RESTful?) que proporcione la cantidad de archivos modificados desde la última verificación o descarga. Esto minimiza tanto la transferencia de datos como la carga tanto en el cliente como en el servidor. Aún más si la carga/modificación de archivos en el servidor se puede rastrear directamente, por ejemplo, en el script de carga en lugar de depender del sistema de archivos.

Si es lo último, buscaría alguna solución de monitoreo de archivos como famd.

Si no tienes control sobre el servidor, entonces debes realizar modificaciones antes de poder descargarlas. Lo más fácil sería utilizar algunosduplicación webutilidad como w3mir, ya que ellos ya se encargan de verificar/proporcionar los encabezados ETag y Last-Modified/If-Modified-Since. Esto significa que tendrá que realizar menos llamadas y, por lo tanto, podrá ejecutar la utilidad con más frecuencia.

En cuanto acómopara ejecutar la utilidad, depende de dónde se ejecuta. Puede utilizar un trabajo cron en una máquina Unix o simplemente ejecutarlo en un bucle.

Sin embargo, si hace lo primero, le recomendamos que instale algún tipo de semáforo para evitar que se inicie un proceso de duplicación antes de que finalice la instancia anterior. Puede ser tan sencillo como crear un archivo de bloqueo:

if [ -r /tmp/mirror.lock ]; then
    echo "lock file found" | logger -t webmirror
    exit 0
fi
touch /tmp/mirror.lock
...whatever...
rm /tmp/mirror.lock

Pero también tendrá que detectar catchcualquier señal que pueda interrumpir su secuencia de comandos; de lo contrario, en caso de un error temporal, el archivo de bloqueo podría dejarse allí e impedir que se ejecuten todas las instancias adicionales incluso después de que se haya resuelto el error.

O puede verificar que el archivo de bloqueo no tenga una antigüedad mayor que una cantidad razonable y eliminarlo si lo es, o verificar cuántas instancias del script se encuentran ps(normalmente una, la actual; si hay más, es mejor la actual). abortar) y prescindir por completo del archivo de bloqueo.

Respuesta3

Podrías ejecutar un curlcomando simple en un trabajo cron, pero te recomiendo que comiences a usar una solución de monitoreo con capacidades de monitoreo web. Hay muchos de ellos de forma gratuita, simplemente busque en Google "Soluciones de monitoreo web de código abierto" y obtendrá muchos de ellos.

Respuesta4

Como dijo FarazX, existen varias soluciones de monitoreo como Nagios,Pandora FMS,... Pero tal vez estas herramientas sean demasiado grandes para su propósito. Tal vezuptimerobotes suficiente para ti.

Echa un vistazo a las propuestas y elige la mejor para ti pero ten en cuenta que una solución de monitorización con más opciones te aporta más posibilidades para tu entorno.

información relacionada