Zoeken op website

Watchman - Een hulpmiddel voor het bekijken van bestanden en mappen voor wijzigingen


Watchman is een open source en platformonafhankelijke dienst voor het bekijken van bestanden die bestanden en records bekijkt of acties uitvoert wanneer deze veranderen. Het is ontwikkeld door Facebook en draait op Linux, OS X, FreeBSD en Solaris. Het draait in een client-servermodel en maakt gebruik van het inotify-hulpprogramma van de Linux-kernel om een krachtigere melding te geven.

Nuttige concepten van Watchman

  • Het kijkt recursief naar een of meer directorybomen.
  • Elke bewaakte map wordt een root genoemd.
  • Het kan worden geconfigureerd via de opdrachtregel of via een configuratiebestand geschreven in JSON-formaat.
  • Het registreert wijzigingen in logbestanden.
  • Ondersteunt abonnementen op bestandswijzigingen die plaatsvinden in een root.
  • Hiermee kunt u een root opvragen voor bestandswijzigingen sinds u de laatste keer hebt gecontroleerd, of voor de huidige status van de boom.
  • Het kan een heel project bekijken.

In dit artikel leggen we uit hoe je watchman installeert en gebruikt om bestanden te bekijken (monitoren) en op te nemen wanneer deze veranderen in Linux. We zullen ook kort demonstreren hoe u een directory kunt bekijken en een script kunt aanroepen wanneer deze verandert.

Watchman File Watching-service installeren onder Linux

We zullen de watchman service van bronnen installeren, dus installeer eerst deze vereiste afhankelijkheden libssl-dev, autoconf, automake libtool, setuptools, python-devel en libfolly met behulp van de volgende opdracht op uw Linux-distributie.

----------- On Debian/Ubuntu ----------- 
sudo apt install autoconf automake build-essential python-setuptools python-dev libssl-dev libtool 

----------- On RHEL/CentOS -----------
yum install autoconf automake python-setuptools python-devel openssl-devel libssl-devel libtool 
yum groupinstall 'Development Tools' 

----------- On Fedora -----------
sudo dnf install autoconf automake python-setuptools openssl-devel libssl-devel libtool 
sudo dnf groupinstall 'Development Tools'  

Zodra de vereiste afhankelijkheden zijn geïnstalleerd, kun je beginnen met het bouwen van watchman door de github-repository te downloaden, naar de lokale repository te gaan, deze te configureren, bouwen en installeren met behulp van de volgende opdrachten.

git clone https://github.com/facebook/watchman.git
cd watchman
git checkout v4.9.0  
./autogen.sh
./configure
make
sudo make install

Bestanden en mappen bekijken met Watchman in Linux

Watchman kan op twee manieren worden geconfigureerd: (1) via de opdrachtregel terwijl de daemon op de achtergrond draait of (2) via een configuratiebestand geschreven in JSON-formaat.

Om een map (bijvoorbeeld ~/bin) te controleren op wijzigingen, voert u de volgende opdracht uit.

watchman watch ~/bin/

De volgende opdracht schrijft een configuratiebestand met de naam state onder /usr/local/var/run/watchman/-state/, in JSON-indeling, evenals een logbestand bestand met de naam log op dezelfde locatie.

U kunt de twee bestanden bekijken met behulp van de cat-opdracht zoals show.

cat /usr/local/var/run/watchman/aaronkilik-state/state
cat /usr/local/var/run/watchman/aaronkilik-state/log

U kunt ook definiëren welke actie moet worden geactiveerd wanneer een map wordt gecontroleerd op wijzigingen. In de volgende opdracht is 'test-trigger' bijvoorbeeld de naam van de trigger en is ~bin/pav.sh het script dat wordt aangeroepen wanneer er wijzigingen worden gedetecteerd in de map die wordt gecontroleerd.

Voor testdoeleinden maakt het script pav.sh eenvoudigweg een bestand aan met een tijdstempel (d.w.z. file.$time.txt) in dezelfde map waar het script wordt opgeslagen.

time=`date +%Y-%m-%d.%H:%M:%S`
touch file.$time.txt

Sla het bestand op en maak het script uitvoerbaar zoals weergegeven.

chmod +x ~/bin/pav.sh

Voer de volgende opdracht uit om de trigger te starten.

watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh

Wanneer u watchman uitvoert om een map in de gaten te houden, wordt deze toegevoegd aan de volglijst en voert u de volgende opdracht uit om deze te bekijken.

watchman watch-list 

Om de triggerlijst voor een root te bekijken, voert u de volgende opdracht uit (vervang ~/bin door de naam root).

watchman trigger-list ~/bin

Gebaseerd op de bovenstaande configuratie wordt er elke keer dat de map ~/bin verandert, een bestand zoals file.2019-03-13.23:14:17.txt daarin aangemaakt en je kunt ze bekijken met de opdracht ls.

ls

Watchman-service verwijderen in Linux

Als je watchman wilt verwijderen, ga dan naar de bronmap en voer de volgende opdrachten uit:

sudo make uninstall
cd '/usr/local/bin' && rm -f watchman 
cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown 

Bezoek de Watchman Github-repository voor meer informatie: https://github.com/facebook/watchman.

Misschien wilt u ook de volgende gerelateerde artikelen lezen.

  1. Swatchdog – Eenvoudige logbestandwatcher in realtime onder Linux
  2. 4 manieren om logbestanden in realtime te bekijken of te monitoren
  3. fswatch – Bewaakt bestanden en mapwijzigingen in Linux
  4. Pyintify – Volg veranderingen in het bestandssysteem in realtime in Linux
  5. Inav – Bekijk Apache-logs in realtime in Linux

Watchman is een open source-service voor het bekijken van bestanden die bestanden en records bekijkt of acties activeert wanneer deze veranderen. Gebruik het onderstaande feedbackformulier om vragen te stellen of uw mening met ons te delen.