GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So überwachen Sie Dateiänderungen mit fswatch unter Linux

Fswatch ist ein kostenloses, plattformübergreifendes Open-Source-Dienstprogramm zur Überwachung von Dateiänderungen, das uns benachrichtigt, wenn der Inhalt der angegebenen Dateien oder Verzeichnisse modifiziert oder geändert wird. Mit fswatch können wir leicht die Änderungen überwachen, die in Dateien und/oder Verzeichnissen vorgenommen werden. Es unterstützt alle Betriebssysteme, einschließlich GNU/Linux, *BSDs, Mac OS X, Solaris und Microsoft Windows usw. Lassen Sie mich Ihnen in dieser kurzen Anleitung zeigen, wie Sie Dateiänderungen mit fswatch in Unix-ähnlichen Betriebssystemen überwachen. P>

Arten der Überwachung

fswatch implementiert die folgenden Arten von Monitoren.

  • Ein Monitor, der auf der API für Dateisystemereignisse von Apple OS X basiert.
  • Ein Monitor, der auf kqueue basiert, einer Benachrichtigungsschnittstelle, die in FreeBSD 4.1 eingeführt wurde.
  • Ein Monitor, der auf der File Event Notification API des Solaris-Kernels und seiner Derivate basiert.
  • Ein auf inotify basierender Monitor, ein Linux-Kernel-Subsystem, das Dateisystemänderungen an Anwendungen meldet.
  • Ein Monitor, der auf ReadDirectoryChangesW basiert, einer Microsoft Windows-API, die Änderungen an einem Verzeichnis meldet.
  • Ein Monitor, der das Dateisystem regelmäßig überwacht, Dateiänderungszeiten im Speicher speichert und Dateisystemänderungen manuell berechnet.

Funktionen

In Bezug auf die Funktionen können wir Folgendes auflisten:

  • Plattformübergreifendes und Open-Source-Dienstprogramm.
  • Unterstützung für viele betriebssystemspezifische APIs.
  • Rekursive Verzeichnisüberwachung.
  • Pfadfilterung mit ein- und ausschließenden regulären Ausdrücken.
  • Anpassbares Datensatzformat.
  • Unterstützung für regelmäßige Leerlaufereignisse.
  • Und viele.

Dateiänderungen mit fswatch unter Linux überwachen

Da das Dienstprogramm fswatch nicht in den Standard-Repositories der meisten Linux-Distributionen verfügbar ist, müssen Sie die neueste Version wie unten beschrieben manuell kompilieren und installieren.

Vor dem Kompilieren müssen Sie Entwicklungstools in Ihrer Linux-Distribution installieren. Informationen zum Installieren von Entwicklungstools auf verschiedenen Linux-Distributionen finden Sie in der folgenden Anleitung.

  • So installieren Sie Entwicklungstools unter Linux

Laden Sie dann die fswatch-Quelldatei von hier herunter .

$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz

Extrahieren Sie den heruntergeladenen Tarball:

$ tar -zxvf fswatch-1.9.3.tar.gz

Gehen Sie zum Ordner des Projekts:

$ cd fswatch-1.9.3/

Schließlich kompilieren und installieren Sie fswatch, indem Sie nacheinander die folgenden Befehle ausführen.

$ ./configure
$ make
$ sudo make install

Führen Sie abschließend den folgenden Befehl aus, um die Links und den Cache für die dynamischen Bibliotheken zu aktualisieren:

$ sudo ldconfig

Wenn Sie den obigen Befehl nicht ausführen, erhalten Sie möglicherweise den folgenden Fehler in GNU/Linux-Systemen.

fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory

fswatch-Nutzung

Die Verwendung von fswatch ist keine große Sache. Die typische Syntax von fswatch ist:

$ fswatch [options] ... path-0 ... path-n

Um zu testen, wie fswatch funktioniert, öffnen Sie zwei Terminalfenster (nennen wir sie Terminal 1 und Terminal 2 ).

Führen Sie in Terminal 1 den Befehl fswatch aus, um das Verzeichnis $HOME zu überwachen.

$ fswatch /home/sk/

Und führen Sie im Terminal 2 einige Vorgänge aus, wie z. B. das Erstellen von Dateien/Ordnern, das Löschen von Dateien, das Ändern von Dateien usw.

Was auch immer Sie in Terminal 2 tun, wird auf Terminal 1 gemeldet. Sehen Sie sich die folgenden Screenshots an.

Terminal 1 - Der Befehl fswatch wird ausgeführt und die Dateiänderungen werden überwacht:

Überwachen Sie Dateiänderungen mit fswatch

Terminal 2 - Führen Sie einige zufällige Änderungen in Dateien/Ordnern durch:

Standardmäßig wählt fswatch in Bezug auf Leistung und Ressourcenverbrauch den besten Monitor, der auf der aktuellen Plattform verfügbar ist. Unter Linux ist die Standardüberwachung notify .

Führen Sie Folgendes aus, um die verfügbaren Monitore auf der aktuellen Plattform (d. h. in unserem Fall Linux) aufzulisten:

$ fswatch -M

Oder,

$ fswatch --list-monitors

Beispielausgabe:

inotify_monitor
poll_monitor

Um eine bestimmte Datei oder ein bestimmtes Verzeichnis mit einer bestimmten Überwachungsoption zu überwachen, führen Sie Folgendes aus:

$ swatch -m kqueue_monitor /home/sk/

Standardmäßig überwacht fswatch die Dateiänderungen so lange, bis Sie es manuell stoppen, indem Sie STRG+C aufrufen Tasten.

Sie können fswatch auch beenden, nachdem die erste Gruppe von Ereignissen empfangen wurde, indem Sie die Option -1 angeben wie im folgenden Befehl gezeigt:

$ fswatch -1 /home/sk/

Dieser Befehl wird beendet, nachdem die erste Gruppe von Ereignissen empfangen wurde.

fswatch überwacht Änderungen in allen Dateien/Ordnern im angegebenen Pfad. Wenn Sie nur die in den Verzeichnissen vorgenommenen Änderungen sehen möchten, verwenden Sie -d Option.

$ fswatch -d /home/sk/

Natürlich gibt es noch mehr Möglichkeiten. Schlagen Sie in den Manpages oder der Dokumentationsseite des Projekts nach für detaillierte Anweisungen.

$ man fswatch

Linux
  1. So überwachen Sie die Ethernet-Aktivität unter Linux mit Arpwatch

  2. Wie benenne ich eine Datei unter Linux um?

  3. So teilen Sie ISO oder Datei mit dem Befehl „Split“ in Linux

  4. So erstellen Sie Sparse-Dateien in Linux mit dem Befehl „dd“.

  5. Wie kopiere ich eine Datei über FTP mit Ubuntu Linux?

So überwachen Sie Linux-Server mit CloudStats

So erstellen Sie einen symbolischen Link in Linux mit dem Ln-Befehl

So überwachen Sie die Betriebszeit von Linux-Systemen mit Uptimed

So sperren Sie eine Textdatei in Linux mit dem Befehl flock

So verknüpfen Sie eine Datei unter Linux per Symlink

So laden Sie eine Datei mit Wget über Proxy in Linux herunter