Watchman - Alat Pengamat File dan Direktori untuk Perubahan


Watchman adalah layanan pengamatan file sumber terbuka dan lintas platform yang mengawasi file dan mencatat atau melakukan tindakan ketika ada perubahan. Ini dikembangkan oleh Facebook dan berjalan di Linux, OS X, FreeBSD, dan Solaris. Ini berjalan dalam model klien-server dan menggunakan utilitas inotify dari kernel Linux untuk memberikan notifikasi yang lebih kuat.

Konsep Penjaga yang Berguna

  • Ini secara rekursif mengawasi satu atau lebih pohon direktori.
  • Setiap direktori yang diawasi disebut root.
  • Itu dapat dikonfigurasi melalui baris perintah atau file konfigurasi yang ditulis dalam format JSON.
  • Ini mencatat perubahan pada file log.
  • Mendukung langganan perubahan file yang terjadi di root.
  • Memungkinkan Anda menanyakan root untuk perubahan file sejak terakhir kali Anda memeriksanya, atau status pohon saat ini.
  • Itu dapat menonton keseluruhan proyek.

Pada artikel ini, kami akan menjelaskan cara menginstal dan menggunakan watchman untuk melihat (memantau) file dan mencatat ketika ada perubahan di Linux. Kami juga akan mendemonstrasikan secara singkat cara melihat direktori dan menjalankan skrip ketika berubah.

Menginstal Layanan Pengamatan File Watchman di Linux

Kita akan menginstal layanan watchman dari sumber, jadi pertama-tama instal dependensi yang diperlukan ini libssl-dev, autoconf, automake libtool, setuptools, python-devel dan libfolly menggunakan perintah berikut pada distribusi Linux Anda.

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

Setelah dependensi yang diperlukan terinstal, Anda dapat mulai membangun penjaga dengan mengunduh repositori github-nya, pindah ke repositori lokal, mengonfigurasi, membangun, dan menginstalnya menggunakan perintah berikut.

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

Menonton File dan Direktori dengan Watchman di Linux

Watchman dapat dikonfigurasi dengan dua cara: (1) melalui baris perintah saat daemon berjalan di latar belakang atau (2) melalui file konfigurasi yang ditulis dalam format JSON.

Untuk melihat perubahan pada direktori (misalnya ~/bin), jalankan perintah berikut.

watchman watch ~/bin/

Perintah berikut menulis file konfigurasi bernama state di bawah /usr/local/var/run/watchman/-state/, dalam format JSON dan juga log file bernama log di lokasi yang sama.

Anda dapat melihat kedua file tersebut menggunakan perintah cat seperti yang ditunjukkan.

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

Anda juga dapat menentukan tindakan apa yang akan dipicu ketika direktori diawasi perubahannya. Misalnya pada perintah berikut, 'test-trigger' adalah nama trigger dan ~bin/pav.sh adalah skrip yang akan dipanggil ketika perubahan terdeteksi di direktori yang dipantau.

Untuk tujuan pengujian, skrip pav.sh hanya membuat file dengan cap waktu (yaitu file.$time.txt) dalam direktori yang sama tempat skrip disimpan.

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

Simpan file dan buat skrip dapat dieksekusi seperti yang ditunjukkan.

chmod +x ~/bin/pav.sh

Untuk meluncurkan pemicu, jalankan perintah berikut.

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

Saat Anda menjalankan watchman untuk mengawasi suatu direktori, direktori tersebut akan ditambahkan ke daftar pantauan dan untuk melihatnya, jalankan perintah berikut.

watchman watch-list 

Untuk melihat daftar pemicu root, jalankan perintah berikut (ganti ~/bin dengan nama root).

watchman trigger-list ~/bin

Berdasarkan konfigurasi di atas, setiap kali direktori ~/bin berubah, file seperti file.2019-03-13.23:14:17.txt dibuat di dalamnya dan Anda dapat melihatnya menggunakan perintah ls.

ls

Menghapus Instalasi Layanan Penjaga di Linux

Jika Anda ingin menghapus instalasi watchman, pindahlah ke direktori sumber dan jalankan perintah berikut:

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

Untuk informasi lebih lanjut, kunjungi repositori Watchman Github: https://github.com/facebook/watchman.

Anda mungkin juga ingin membaca artikel terkait berikut ini.

  1. Swatchdog – Pengamat File Log Sederhana secara Real-Time di Linux
  2. 4 Cara Menonton atau Memantau File Log secara Real Time
  3. fswatch – Memantau Perubahan File dan Direktori di Linux
  4. Pyintify – Pantau Perubahan Sistem File secara Real Time di Linux
  5. Inav – Tonton Log Apache secara Real Time di Linux

Watchman adalah layanan pengamatan file sumber terbuka yang mengawasi file dan catatan, atau memicu tindakan, ketika ada perubahan. Gunakan formulir umpan balik di bawah ini untuk mengajukan pertanyaan atau berbagi pemikiran Anda dengan kami.