Watchman - Değişiklikler için Dosya ve Dizin İzleme Aracı
Watchman, dosyaları izleyen, kaydeden veya değiştiklerinde işlem gerçekleştiren, açık kaynaklı ve platformlar arası bir dosya izleme hizmetidir. Facebook tarafından geliştirilmiştir ve Linux, OS X, FreeBSD ve Solaris'te çalışır. İstemci-sunucu modelinde çalışır ve daha güçlü bir bildirim sağlamak için Linux çekirdeğinin inotify yardımcı programını kullanır.
Bekçinin Faydalı Kavramları
- Bir veya daha fazla dizin ağacını yinelemeli olarak izler.
- İzlenen her dizine kök adı verilir.
- Komut satırı aracılığıyla veya JSON formatında yazılmış bir yapılandırma dosyası aracılığıyla yapılandırılabilir.
- Günlük dosyalarındaki değişiklikleri kaydeder.
- Kökte meydana gelen dosya değişikliklerine aboneliği destekler.
- Son kontrolünüzden bu yana dosya değişikliklerini veya ağacın geçerli durumunu sorgulamanıza olanak tanır.
- Bir projenin tamamını izleyebilir.
Bu yazıda, Linux'ta dosyaları izlemek (izlemek) ve değiştiklerinde kayıt yapmak için watchman'in nasıl kurulacağını ve kullanılacağını açıklayacağız. Ayrıca bir dizinin nasıl izleneceğini ve değiştiğinde bir betiğin nasıl çağrılacağını da kısaca göstereceğiz.
Linux'ta Watchman Dosya İzleme Hizmetini Kurmak
Kaynaklardan bekçi hizmetini kuracağız, bu nedenle öncelikle şu gerekli bağımlılıkları libssl-dev, autoconf, automake yükleyin. Linux dağıtımınızda aşağıdaki komutu kullanarak Strong>libtool, setuptools, python-devel ve libfolly'yi kullanın.
----------- 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'
Gerekli bağımlılıklar kurulduktan sonra, github deposunu indirerek watchman'i oluşturmaya başlayabilir, aşağıdaki komutları kullanarak yerel depoya geçebilir, yapılandırabilir, oluşturabilir ve yükleyebilirsiniz.
git clone https://github.com/facebook/watchman.git
cd watchman
git checkout v4.9.0
./autogen.sh
./configure
make
sudo make install
Linux'ta Watchman ile Dosya ve Dizinleri İzlemek
Watchman iki şekilde yapılandırılabilir: (1) arka plan programı arka planda çalışırken komut satırı yoluyla veya (2) JSON formatında yazılmış bir yapılandırma dosyası aracılığıyla.
Değişiklikleri bir dizinde (örneğin ~/bin
) izlemek için aşağıdaki komutu çalıştırın.
watchman watch ~/bin/
Aşağıdaki komut, /usr/local/var/run/watchman/state
adlı bir yapılandırma dosyasını JSON formatında ve bir günlük olarak yazar aynı konumda log
adlı dosya.
Gösteri olarak cat komutunu kullanarak iki dosyayı görüntüleyebilirsiniz.
cat /usr/local/var/run/watchman/aaronkilik-state/state
cat /usr/local/var/run/watchman/aaronkilik-state/log
Ayrıca, bir dizin değişiklikler açısından izlendiğinde hangi eylemin tetikleneceğini de tanımlayabilirsiniz. Örneğin, aşağıdaki komutta, 'test-trigger
' tetikleyicinin adıdır ve ~bin/pav.sh
, değişiklikler algılandığında çağrılacak komut dosyasıdır izlenen dizinde.
Test amacıyla, pav.sh
betiği aynı dizinde zaman damgası (yani file.$time.txt
) içeren bir dosya oluşturur. betiğin saklandığı yer.
time=`date +%Y-%m-%d.%H:%M:%S`
touch file.$time.txt
Dosyayı kaydedin ve betiği gösterildiği gibi yürütülebilir hale getirin.
chmod +x ~/bin/pav.sh
Tetikleyiciyi başlatmak için aşağıdaki komutu çalıştırın.
watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh
Bir dizini takip etmek için watchman komutunu çalıştırdığınızda, o dizin izleme listesine eklenir ve görüntülemek için aşağıdaki komutu çalıştırın.
watchman watch-list
Bir kök için tetikleyici listesini görüntülemek için aşağıdaki komutu çalıştırın (~/bin
yerine kök
adını yazın).
watchman trigger-list ~/bin
Yukarıdaki yapılandırmaya dayanarak, ~/bin
dizini her değiştiğinde, içinde file.2019-03-13.23:14:17.txt
gibi bir dosya oluşturulur. ls komutunu kullanarak bunları görüntüleyebilirsiniz.
ls
Linux'ta Watchman Hizmetini Kaldırma
Watchman'i kaldırmak istiyorsanız kaynak dizine gidin ve aşağıdaki komutları çalıştırın:
sudo make uninstall
cd '/usr/local/bin' && rm -f watchman
cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown
Daha fazla bilgi için Watchman Github deposunu ziyaret edin: https://github.com/facebook/watchman.
Aşağıdaki ilgili makaleleri de okumak isteyebilirsiniz.
- Swatchdog – Linux'ta Gerçek Zamanlı Basit Günlük Dosyası İzleyici
- Günlük Dosyalarını Gerçek Zamanlı Olarak İzlemenin veya İzlemenin 4 Yolu
- fswatch – Linux'taki Dosyaları ve Dizin Değişikliklerini İzler
- Pyintify – Linux'ta Dosya Sistemi Değişikliklerini Gerçek Zamanlı Olarak İzleyin
- Inav – Linux'ta Apache Günlüklerini Gerçek Zamanlı Olarak İzleyin
Watchman, dosyaları ve kayıtları izleyen veya değiştiklerinde eylemleri tetikleyen açık kaynaklı bir dosya izleme hizmetidir. Soru sormak veya düşüncelerinizi bizimle paylaşmak için aşağıdaki geri bildirim formunu kullanın.