Watchman - Εργαλείο παρακολούθησης αρχείων και καταλόγου για αλλαγές


Το Watchman είναι μια υπηρεσία παρακολούθησης αρχείων ανοιχτού κώδικα και πολλαπλών πλατφορμών που παρακολουθεί αρχεία και καταγράφει ή εκτελεί ενέργειες όταν αλλάζουν. Αναπτύχθηκε από το Facebook και τρέχει σε Linux, OS X, FreeBSD και Solaris. Εκτελείται σε ένα μοντέλο πελάτη-διακομιστή και χρησιμοποιεί το βοηθητικό πρόγραμμα inotify του πυρήνα Linux για να παρέχει μια πιο ισχυρή ειδοποίηση.

Χρήσιμες έννοιες του Watchman

  • Παρακολουθεί αναδρομικά ένα ή περισσότερα δέντρα καταλόγου.
  • Κάθε κατάλογος παρακολούθησης ονομάζεται root.
  • Μπορεί να ρυθμιστεί μέσω της γραμμής εντολών ή ενός αρχείου διαμόρφωσης γραμμένου σε μορφή JSON.
  • Καταγράφει τις αλλαγές στα αρχεία καταγραφής.
  • Υποστηρίζει τη συνδρομή σε αλλαγές αρχείων που συμβαίνουν σε ένα root.
  • Σας επιτρέπει να υποβάλετε ερώτημα σε μια ρίζα για αλλαγές στο αρχείο από την τελευταία φορά που ελέγξατε ή την τρέχουσα κατάσταση του δέντρου.
  • Μπορεί να παρακολουθήσει ένα ολόκληρο έργο.

Σε αυτό το άρθρο, θα εξηγήσουμε πώς να εγκαταστήσετε και να χρησιμοποιήσετε το watchman για την παρακολούθηση (παρακολούθηση) αρχείων και την εγγραφή όταν αλλάζουν στο Linux. Θα δείξουμε επίσης εν συντομία πώς να παρακολουθείτε έναν κατάλογο και να επικαλείτε ένα σενάριο όταν αλλάζει.

Εγκατάσταση της υπηρεσίας παρακολούθησης αρχείων Watchman σε Linux

Θα εγκαταστήσουμε την υπηρεσία watchman από πηγές, επομένως πρώτα εγκαταστήστε αυτές τις απαιτούμενες εξαρτήσεις libssl-dev, autoconf, automake libtool, setuptools, python-devel και libfolly χρησιμοποιώντας την παρακάτω εντολή στη διανομή Linux σας.

----------- 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'  

Μόλις εγκατασταθούν οι απαιτούμενες εξαρτήσεις, μπορείτε να ξεκινήσετε τη δημιουργία του Watchman κατεβάζοντας το αποθετήριο github του, να μετακινηθείτε στο τοπικό αποθετήριο, να το διαμορφώσετε, να το δημιουργήσετε και να το εγκαταστήσετε χρησιμοποιώντας τις ακόλουθες εντολές.

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

Παρακολούθηση αρχείων και καταλόγων με το Watchman στο Linux

Το Watchman μπορεί να διαμορφωθεί με δύο τρόπους: (1) μέσω της γραμμής εντολών ενώ ο δαίμονας εκτελείται στο παρασκήνιο ή (2) μέσω ενός αρχείου διαμόρφωσης γραμμένου σε μορφή JSON.

Για να παρακολουθήσετε έναν κατάλογο (π.χ. ~/bin) για αλλαγές, εκτελέστε την ακόλουθη εντολή.

watchman watch ~/bin/

Η ακόλουθη εντολή γράφει ένα αρχείο διαμόρφωσης που ονομάζεται state στο /usr/local/var/run/watchman/-state/, σε μορφή JSON καθώς και ένα αρχείο καταγραφής αρχείο που ονομάζεται log στην ίδια τοποθεσία.

Μπορείτε να προβάλετε τα δύο αρχεία χρησιμοποιώντας την εντολή cat ως εμφάνιση.

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

Μπορείτε επίσης να ορίσετε ποια ενέργεια θα ενεργοποιείται όταν ένας κατάλογος παρακολουθείται για αλλαγές. Για παράδειγμα, στην ακόλουθη εντολή, "test-trigger" είναι το όνομα του κανόνα ετικέτας και ~bin/pav.sh είναι το σενάριο που θα γίνει επίκληση όταν εντοπιστούν αλλαγές στον κατάλογο που παρακολουθείται.

Για δοκιμαστικούς σκοπούς, το σενάριο pav.sh δημιουργεί απλώς ένα αρχείο με χρονοσήμανση (δηλ. file.$time.txt) στον ίδιο κατάλογο όπου είναι αποθηκευμένο το σενάριο.

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

Αποθηκεύστε το αρχείο και κάντε το σενάριο εκτελέσιμο όπως φαίνεται.

chmod +x ~/bin/pav.sh

Για να εκκινήσετε τη σκανδάλη, εκτελέστε την ακόλουθη εντολή.

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

Όταν εκτελείτε το watchman για να παρακολουθείτε έναν κατάλογο, ο οποίος προστίθεται στη λίστα παρακολούθησης και για να τον προβάλετε, εκτελέστε την ακόλουθη εντολή.

watchman watch-list 

Για να προβάλετε τη λίστα ενεργοποίησης για μια root, εκτελέστε την ακόλουθη εντολή (αντικαταστήστε το ~/bin με το όνομα root).

watchman trigger-list ~/bin

Με βάση την παραπάνω διαμόρφωση, κάθε φορά που αλλάζει ο κατάλογος ~/bin, δημιουργείται ένα αρχείο όπως το file.2019-03-13.23:14:17.txt και μπορείτε να τα δείτε χρησιμοποιώντας την εντολή ls.

ls

Απεγκατάσταση της υπηρεσίας Watchman σε Linux

Εάν θέλετε να απεγκαταστήσετε το watchman, μετακινηθείτε στον κατάλογο προέλευσης και εκτελέστε τις ακόλουθες εντολές:

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

Για περισσότερες πληροφορίες, επισκεφτείτε το αποθετήριο Watchman Github: https://github.com/facebook/watchman.

Μπορεί επίσης να θέλετε να διαβάσετε αυτά τα παρακάτω σχετικά άρθρα.

  1. Swatchdog – Απλή παρακολούθηση αρχείων καταγραφής σε πραγματικό χρόνο στο Linux
  2. 4 τρόποι παρακολούθησης ή παρακολούθησης αρχείων καταγραφής σε πραγματικό χρόνο
  3. fswatch – Παρακολουθεί αρχεία και αλλαγές καταλόγου στο Linux
  4. Pyintify – Παρακολούθηση αλλαγών συστήματος αρχείων σε πραγματικό χρόνο στο Linux
  5. Inav – Παρακολουθήστε τις καταγραφές Apache σε πραγματικό χρόνο στο Linux

Το Watchman είναι μια υπηρεσία παρακολούθησης αρχείων ανοιχτού κώδικα που παρακολουθεί αρχεία και καταγράφει ή ενεργοποιεί ενέργειες όταν αλλάζουν. Χρησιμοποιήστε την παρακάτω φόρμα σχολίων για να κάνετε ερωτήσεις ή να μοιραστείτε τις σκέψεις σας μαζί μας.