Überwachen Sie den Webserver weiterhin und laden Sie neu hinzugefügte Dateien herunter

Überwachen Sie den Webserver weiterhin und laden Sie neu hinzugefügte Dateien herunter

Was ist die beste Möglichkeit, einen Webserver (HTTP) kontinuierlich zu überwachen und neu hinzugefügte Dateien mit minimaler Verzögerung (idealerweise < 1 Minute Verzögerung) herunterzuladen?

Antwort1

Überwachung

Zunächst einmal empfehle ich Ihnen zur ÜberwachungNagios, der Kernquellcode ist kostenlos, wenn Sie jedoch eine GUI benötigen, müssen Sie dafür bezahlen, aber es ist den Preis wert.

Sie können auchVereisung,PRTG, oder was auch immer Ihnen besser passt.

Collectd (Collection Daemon) ist auch ein kostenloses Überwachungstool, das Sie herunterladen können, indem Sie es yumauf RHEL-Derivaten oder apt-getauf Debian-basierten verwenden. Sie können lesendieses Papierwenn Sie Collectd verwenden möchten.

Task wird alle x < 1 Minute ausgeführt

Zum zweiten Teil Ihrer Frage: Um einen Job alle x Mal auszuführen, wobei x in regelmäßigen Abständen weniger als eine Minute dauert, können Sie, wie Sie wissen, keine Cronjobs verwenden, da Sie einige Tricks verwenden können, die vonGilles in dieser Fragezu tun, was Sie wollen.

Es ist besser, ein Skript für das zu haben, was Sie brauchen, und es dauerhaft auszuführen, sogar beim Booten, wenn nötig. Sie können eine einfache Syntax wie unten gezeigt verwenden:

while true; do yourJob; sleep someTime; done

Oder Sie können je nach Bedarf sogar einige komplexere Skripte verwenden.

Sie können auch watchden Befehl verwenden. Zum Beispiel:

watch -n1  command

Es wird Sie commandjede Sekunde und für immer verfolgen.

Wie Sie vielleicht schon vermutet haben, können Sie Ihr Shell-Skript auch mit ausführen, watchwenn Sie nur ein einfaches Skript benötigen, das alle x Mal in weniger als einer Minute ausgeführt wird, und kein komplexes.

Es ist deine Entscheidung.

Antwort2

Dies hängt von mehreren Faktoren ab.

Wenn Sie die Kontrolle über den Webserver haben, wäre es am einfachsten, einen (RESTful?)-Dienst zu installieren, der die Anzahl der seit der letzten Überprüfung oder dem letzten Download geänderten Dateien angibt. Dies minimiert sowohl den Datentransfer als auch die Belastung von Client und Server. Noch besser ist es, wenn das Hochladen/Ändern von Dateien auf dem Server direkt verfolgt werden kann, z. B. im Upload-Skript, anstatt sich auf das Dateisystem zu verlassen.

Wenn Letzteres zutrifft, würde ich mir eine Dateiüberwachungslösung wie ansehen famd.

Wenn Sie keine Kontrolle über den Server haben, müssen Sie Änderungen vornehmen, bevor Sie diese herunterladen können. Am einfachsten wäre es, einigeWebspiegelungDienstprogramme wie w3mir, da diese bereits die Überprüfung/Bereitstellung von ETag- und Last-Modified-/If-Modified-Since-Headern übernehmen. Das bedeutet, dass Sie weniger Aufrufe tätigen müssen und das Dienstprogramm daher häufiger ausführen können.

WasWieUm das Dienstprogramm auszuführen, hängt es davon ab, wo es ausgeführt wird. Sie können einen Cron-Job auf einem Unix-Computer verwenden oder es einfach in einer Schleife ausführen.

Wenn Sie sich für Ersteres entscheiden, sollten Sie jedoch eine Art Semaphor installieren, um zu verhindern, dass ein Spiegelungsprozess gestartet wird, bevor die vorherige Instanz beendet wurde. Das kann so einfach sein wie das Erstellen einer Sperrdatei:

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

Sie müssen jedoch auch auf catchjedes Signal achten, das Ihr Skript beenden könnte. Andernfalls könnte im Falle eines vorübergehenden Fehlers die Sperrdatei dort verbleiben und alle weiteren Instanzen daran hindern, ausgeführt zu werden, selbst nachdem der Fehler behoben wurde.

Oder Sie könnten überprüfen, ob die Sperrdatei älter als ein bestimmter Wert ist und sie ggf. löschen. Oder Sie könnten überprüfen, wie viele Instanzen des Skripts gefunden werden ps(normalerweise eine, die aktuelle; wenn es mehr sind, sollte die aktuelle besser abgebrochen werden) und ganz auf die Sperrdatei verzichten.

Antwort3

Sie könnten einen einfachen curlBefehl in einem Cron-Job ausführen, aber ich empfehle Ihnen, eine Überwachungslösung mit Webüberwachungsfunktionen zu verwenden. Davon gibt es viele kostenlos. Googeln Sie einfach nach „Open Source-Webüberwachungslösungen“ und Sie werden viele davon finden!

Antwort4

Wie FarazX sagte, gibt es mehrere Überwachungslösungen wie Nagios,Pandora FMS,... Aber vielleicht sind diese Werkzeuge zu groß für Ihren Zweck. VielleichtUptimerobotreicht dir.

Schauen Sie sich die Vorschläge an und wählen Sie das Beste für sich aus. Bedenken Sie jedoch, dass eine Überwachungslösung mit mehr Optionen Ihnen mehr Möglichkeiten für Ihre Umgebung bietet.

verwandte Informationen