staging.inyokaproject.org

Datei auf änderungen prüfen und die Frequenz loggen?

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

EricBerne

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Hallo Gemeinde,

gerne möchte ich eine JavaScript Datei auf ändernden überwachen. Dabei möchte ich nur die Frequenz Wissen, mit der die Änderungen erscheinen.

Kann mir jemand einen Tipp geben, wie man so etwas realisieren kann?

Die Datei liegt z.B.

wie folgt: https://meineurl.example.com/hier/da/und/hier.js

Vielen Dank im Voraus Beste Grüße

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Wie wäre es damit?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/sh

# Modification time history for $1 is logged.

if [ $# -lt 1 ]; then
  echo "ERROR: need one argument." >&2
  exit 1
fi

log="$1.versions"

last=$(tail -1 "$log") 2>/dev/null
current=$(date -ur "$1") || exit

if [ "$last" != "$current" ]; then
  echo "Changed"
  echo "$current" >> "$log"
fi

EricBerne

(Themenstarter)

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Hallo rklm,

meinst du ich muss die Datei voher herunterladen? Wget oder Curl. und dann prüfen?

Irgend wie verstehe ich deinen Ansaz nicht.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

EricBerne schrieb:

meinst du ich muss die Datei voher herunterladen?

Davon, dass die Datei nicht lokal ist, war nicht die Rede. Das ist natürlich etwas anderes.

Wget oder Curl.

Eins davon (oder etwas ähnliches) wirst Du mit Sicherheit benötigen, wenn die Datei auf einem Webserver liegt.

Irgend wie verstehe ich deinen Ansaz nicht.

Ich verstehe Dein Problem nicht - da sind wir also schon zwei. ☺ Vielleicht erklärst Du erst mal, was Du erreichen möchtest.

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3793

Hallo EricBerne,

meiner Ansicht nach müsste man einen Prüfsummenvergleich aktuelle Datei vs. letzte Datei machen.

md5sum datei

Es geht ja vermutlich primär darum, ob der Inhalt der Datei sich geändert hat. Das Dateidatum ist beliebig manipulierbar und sagt somit gar nichts aus.

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3793

Dabei möchte ich nur die Frequenz Wissen, mit der die Änderungen erscheinen.

Eine "Frequenzanzeige" wird (egal wie realisiert) natürlich nur maximal so genau sein wie der Intervall von "Datei holen + mit Vorversion vergleichen". Also 100%ig exakt wird das wohl prinzipbedingt unmöglich. Eher sowas wie ein "Trendbarometer" oder "mehr / weniger als x Änderungen im Zeitraum y".

mike1963

Anmeldungsdatum:
28. August 2018

Beiträge: 19

dingsbums schrieb:

Dabei möchte ich nur die Frequenz Wissen, mit der die Änderungen erscheinen.

Eine "Frequenzanzeige" wird (egal wie realisiert) natürlich nur maximal so genau sein wie der Intervall von "Datei holen + mit Vorversion vergleichen". Also 100%ig exakt wird das wohl prinzipbedingt unmöglich. Eher sowas wie ein "Trendbarometer" oder "mehr / weniger als x Änderungen im Zeitraum y".

Mittels incron sollte auch eine Frequenzanzeige der Dateiänderungen von bestimmten Files und Verzeichnissen recht leicht (und genau) möglich sein ...

https://www.pcwelt.de/ratgeber/So-ueberwachen-Sie-Linux-Dateisysteme-mit-dem-Verzeichnisspion-Incron-9966975.html

Mit Incron, das ein Verwandter solcher Aufgabenplaner ist, kann ein Linux-System vordefinierte Aktionen bei Änderungen an einem überwachten Verzeichnis ausführen. Tritt auf Dateisystemen eine bestimmte Bedingung ein – indem etwa eine neue Datei oder ein Ordner hinzukommt –, dann bemerkt Incron dies und führt ein beliebiges Script aus. Für automatisierte Aufgaben im Dateisystem ist diese Lösung elegant, effizient und kaum komplizierter als die Einrichtung herkömmlicher Cronjobs.

Funktionsweise und Einrichtung vom Taskplaner Incron

Incron selbst ist ein Taskplaner, der nach dem „Wenn-dann“-Muster arbeitet und als Daemon (Hintergrunddienst) läuft. Die Überwachung des Dateisystems überlässt Incron der Kernel-Schnittstelle von Inotify. Der Linux-Kernel ist über Vorgänge in den eingehängten Dateisystemen sowieso informiert und bietet über Inotify eine API-Schnittstelle, um diese Änderungen abzufragen. Incron kann sich also auf den Kernel verlassen und bleibt deshalb so kompakt und genügsam, dass der laufende Daemon im Betrieb nicht auffällt.

incron müsste Bestandteil von ubuntu sein:

1
sudo apt-get install incron

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

dingsbums schrieb:

meiner Ansicht nach müsste man einen Prüfsummenvergleich aktuelle Datei vs. letzte Datei machen.

md5sum datei

Es geht ja vermutlich primär darum, ob der Inhalt der Datei sich geändert hat. Das Dateidatum ist beliebig manipulierbar und sagt somit gar nichts aus.

Änderungen am Inhalt kann man auch mit diff ermitteln. Vorteil wäre, dass man dann die Änderungen gleich melden oder anzeigen kann. Für große Dateien ist eine Prüfsumme vielleicht eleganter. Aber ich nehme an, dass die JavaScript-Datei eher kleiner ist (reine Spekulation natürlich, weil wir nicht mehr Futter bekommen haben).

mike1963 schrieb:

Mittels incron sollte auch eine Frequenzanzeige der Dateiänderungen von bestimmten Files und Verzeichnissen recht leicht (und genau) möglich sein ...

Ich bin skeptisch. Denn incron nutzt ja Inotify, um das Dateisystem zu überwachen. Anscheinend muss man aber in diesem Fall die Datei erst herunterladen. Aber wenn man das macht, dann kann man auch gleich nach dem Herunterladen einen Versionsvergleich starten. Da hilft incron nicht.

Antworten |