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/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.
- Swatchdog – Pengamat File Log Sederhana secara Real-Time di Linux
- 4 Cara Menonton atau Memantau File Log secara Real Time
- fswatch – Memantau Perubahan File dan Direktori di Linux
- Pyintify – Pantau Perubahan Sistem File secara Real Time di Linux
- 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.