fswatch – Bewaakt Bestands- en Mapwijzigingen of Aanpassingen in Linux

fswatch is een cross-platform bestandswijzigingsmonitor die meldingswaarschuwingen geeft wanneer de inhoud van de opgegeven bestanden of mappen wordt gewijzigd.

Het voert vier soorten monitors uit op verschillende besturingssystemen zoals:

  1. A monitor build on the File System Events API of Apple OS X.
  2. A monitor based on kqueue, a notification interface present in FreeBSD 4.1 also supported on many *BSD systems, OS X inclusive.
  3. A monitor based on File Events Notification API of the Solaris kernel plus its spin-offs.
  4. A monitor based on inotify, a kernel subsystem that shows file system modifications to apps.
  5. A monitor based on ReadDirectoryChangesW, a Windows API that records alters to a directory.
  6. A monitor that regularly check that status of file system, keeps file modification times in memory, and manually determine file system changes (which works anywhere, where stat can be used).

Kenmerken van fswatch

  1. Ondersteunt verschillende OS-specifieke API’s
  2. Maakt recursieve mapmonitoring mogelijk
  3. Voert padfiltering uit met inbegrip en uitsluiting van reguliere expressies
  4. Ondersteunt aanpasbaar opnameformaat
  5. Bovendien ondersteunt het periodieke inactieve gebeurtenissen

Hoe fswatch te installeren in Linux-systemen

Helaas is het fswatch pakket niet beschikbaar om te installeren vanuit de standaard systeemrepositories in welke Linux distributie dan ook. De enige manier om de nieuwste versie van fswatch te installeren is door te bouwen vanuit de bron-tarball zoals getoond in de volgende installatie-instructies.

Grijp eerst de nieuwste fswatch tarball met behulp van het volgende wget commando en installeer het zoals getoond:

$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz
$ tar -xvzf fswatch-1.9.3.tar.gz
$ cd fswatch-1.9.3
$ ./configure
$ make
$ sudo make install 

Belangrijk: Zorg ervoor dat je GNU GCC (C en C++ Compiler) en Ontwikkeltools (build-essential op Debian/Ubuntu) geïnstalleerd hebt op het systeem, voordat je fswatch compileert vanuit de bron. Zo niet, installeer het met het volgende commando op je respectievelijke Linux distributies.

# yum group install 'Development Tools'		[On CentOS/RHEL]
# dnf group install 'Development Tools'		[On Fedora 22+ Versions]
$ sudo apt-get install build-essential          [On Debian/Ubuntu Versions]

Op Debian/Ubuntu distributies, kunt u de volgende foutmelding krijgen bij het uitvoeren van het fswatch commando..

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

Om dit op te lossen, moet u het onderstaande commando uitvoeren, dit zal helpen om de links en cache naar de dynamische bibliotheken te vernieuwen voordat u fswatch kunt gaan gebruiken.

$ sudo ldconfig

Hoe gebruik ik fswatch op Linux?

De algemene syntaxis voor het uitvoeren van fswatch is:

$ fswatch [option] [path]

Op Linux, wordt aanbevolen om de standaard inotify monitor te gebruiken, u kunt de beschikbare monitors weergeven door de -M of - list-monitors optie te gebruiken:

$ fswatch -M
$ fswatch --list-monitors
fswatch – List Monitors

Het onderstaande commando stelt u in staat om de wijzigingen in de huidige map (/home/tecmint) te volgen, waarbij gebeurtenissen elke 4 seconden naar de standaard uitvoer worden gestuurd.

De -l of –--latency optie stelt u in staat om de latentie in seconden in te stellen, waarbij de standaardwaarde 1 seconde is.

$ fswatch -l 4 . 

Het volgende commando controleert elke 5 seconden wijzigingen in het /var/log/auth.log bestand:

$ fswatch -l 5 /var/log/auth.log

Met de -t of --timestamp optie wordt de tijdstempel voor elk evenement afgedrukt, om de tijd in UTC formaat af te drukken, gebruikt u de -u of --utf-time optie. U kunt ook de tijd opmaken met behulp van de -f of --format-time formaatoptie:

$ fswatch --timestamp /var/log/auth.log

Vervolgens vertelt -x of --event-flags fswatch om de gebeurtenisvlaggen naast het gebeurtenispad af te drukken. U kunt de –event-field-seperator optie gebruiken om gebeurtenissen af te drukken met de specifieke scheidingsteken.

$ fswatch --events-flags ~ /var/log/auth.log

Om de numerieke waarde van een gebeurtenis aan te geven die veranderingen in uw thuismap en het bestand /var/log/auth.log aangeeft, gebruikt u de optie -n of --numeric zoals hieronder:

$ fswatch --numeric ~ /var/log/auth.log 

Misschien kunt u de man-pagina van fswatch raadplegen voor gedetailleerde gebruiksopties en informatie:

$ man fswatch

Voor meer informatie en gebruik, bezoek de Github-opslagplaats van fswatch: https://github.com/emcrisostomo/fswatch

In deze post behandelden we een eenvoudig commandoregelhulpprogramma om Linux-gebruikers op de hoogte te stellen wanneer de inhoud van gespecificeerde bestanden of maphiërarchieën wordt gewijzigd.

I hope all went well with the installation, if that is not the case for you, make an effort to reach us via the feedback form below. In addition, in case you have used it before, you may want to offer us some thoughts about your experience with fswatch.

Source:
https://www.tecmint.com/fswatch-monitors-files-and-directory-changes-modifications-in-linux/