Fswatch, belirtilen dosyaların veya dizinlerin içeriği değiştirildiğinde veya değiştirildiğinde bize haber veren ücretsiz, açık kaynaklı, çok platformlu bir dosya değişikliği izleme aracıdır. fswatch kullanarak dosyalarda ve/veya dizinlerde yapılan değişiklikleri kolaylıkla takip edebiliyoruz. GNU/Linux, *BSD’ler, Mac OS X, Solaris ve Microsoft Windows vb. dahil tüm işletim sistemlerini destekler. Bu kısa kılavuzda, Linux ve Unix benzeri işletim sistemlerinde fswatch kullanarak dosya değişikliklerini nasıl izleyeceğinizi göstermeme izin verin.
İzleme türleri
Fswatch aşağıdaki monitör türlerini uygular.
- Apple OS X’in Dosya Sistemi Olayları API’sini temel alan bir izleme
- FreeBSD 4.1’de tanıtılan bir bildirim arayüzü olan kqueue tabanlı bir izleme
- Solaris çekirdeğinin ve türevlerinin Dosya Olayları Bildirimi API’sini temel alan bir izleme
- Dosya sistemi değişikliklerini uygulamalara bildiren bir Linux çekirdek alt sistemi olan inotify’a dayalı bir izleme
- Bir dizindeki değişiklikleri bildiren bir Microsoft Windows API’si olan ReadDirectoryChangesW’ye dayalı bir izleme
- Dosya sistemini periyodik olarak gösteren, dosya değiştirme sürelerini belleğe kaydeden ve dosya sistemi değişikliklerini manuel olarak hesaplayan bir izleme
Özellikler
fswatch özellikleri ile ilgili olarak şunları sıralayabiliriz:
- Çapraz platform ve açık kaynak yardımcı programı.
- Birçok işletim sistemine özel API desteği.
- Özyinelemeli dizin izleme.
- Normal ifadeleri dahil etme ve hariç tutmayı kullanarak yol filtreleme.
- Özelleştirilebilir kayıt formatı.
- Periyodik boşta olaylar için destek.
Linux’ta fswatch’ı kurulumu
fswatch yardımcı programı, popüler Linux dağıtımlarının varsayılan depolarında bulunur.
fswatch’ı Debian, Ubuntu, Linux Mint, Pop OS ve diğer APT tabanlı sistemlere kurmak için şunu çalıştırın:
$ sudo apt install fswatch
Fswatch’ı Fedora, RHEL, CentOS, AlmaLinux ve Rocky Linux’a kurmak için, şu komutu kullanarak [EPEL] deposunu etkinleştirin:
$ sudo dnf install epel-release
Ardından şu komutu kullanarak install fswatch’ı kurun:
$ sudo dnf install fswatch
fswatch’ı openSUSE’ye kurmak için şunu çalıştırın:
$ sudo zypper install fswatch
Kaynaktan fswatch yükleyin
Dağıtımınız için fswatch mevcut değilse, aşağıda açıklandığı gibi kaynaktan en son sürümü manuel olarak derleyebilir ve kurabilirsiniz.
Derlemeden önce, Linux dağıtımınıza Geliştirme araçlarını yüklemeniz gerekir.
Ardından fswatch kaynak dosyasını buradan indirin.
$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.17.1/fswatch-1.17.1.tar.gz
İndirilen tarball’ı çıkarın:
$ tar -zxvf fswatch-1.17.1.tar.gz
Projenin klasörüne gidin:
$ cd fswatch-1.17.1/
Son olarak aşağıdaki komutları tek tek çalıştırarak fswatch’ı derleyin ve kurun.
$ ./configure
$ make
$ sudo make install
Son olarak, dinamik kitaplıkların bağlantılarını ve önbelleğini yenilemek için aşağıdaki komutu çalıştırın:
$ sudo ldconfig
Yukarıdaki komutu çalıştırmazsanız, GNU/Linux sistemlerinde aşağıdaki hatayı alabilirsiniz.
fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory
Son olarak, doğru yüklendiğinden emin olmak için fswatch sürümünü kontrol edin:
$ fswatch --version fswatch 1.17.1 Copyright (C) 2013-2021 Enrico M. Crisostomo <[email protected]>. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Enrico M. Crisostomo.
FreeBSD’ye fswatch yükleyin
FreeBSD’de fswatch, kök olarak pkg kullanılarak kurulabilir:
# pkg install fswatch-mon
Linux’ta fswatch kullanarak dosya değişikliklerini izleyin
fswatch kullanımı önemli değil. fswatch’ın tipik sözdizimi şöyledir:
$ fswatch [options] ... path-0 ... path-n
fswatch’ın nasıl çalıştığını test etmek için iki Terminal penceresi açın (Onlara Terminal 1 ve Terminal 2 diyelim).
Terminal 1’de, $HOME dizinini izlemek için fswatch komutunu çalıştırın.
$ fswatch /home/ostechnix/
Ve Terminal 2’de dosya/klasör oluşturma, dosyaları silme ve dosyaları değiştirme gibi bazı işlemleri yapın.
Terminal 2’de ne yaparsanız yapın Terminal 1’de bilgilendirilecektir. Aşağıdaki ekran görüntülerine bir göz atın.
Terminal 1 – fswatch komutu çalışıyor ve dosya değişiklikleri izleniyor:
Terminal 2 – Dosyalarda/klasörlerde bazı rastgele değişiklikler yapın:
Varsayılan olarak fswatch, performans ve kaynak tüketimi açısından mevcut platformda mevcut olan en iyi monitörü seçecektir. Linux’ta varsayılan monitör inotify’dır.
Varsayılan olarak fswatch, CTRL+C tuşlarını kullanarak manuel olarak durdurana kadar dosya değişikliklerini izlemeye devam edecektir.
Monitörleri listele
Mevcut platformdaki mevcut monitörleri listelemek için (yani bizim durumumuzda Linux), şunu çalıştırın:
$ fswatch -M
Veya,
$ fswatch --list-monitors
Örnek çıktı:
inotify_monitor poll_monitor
Belirli bir dosya veya klasörü izleyin
Belirli bir dosya veya dizini belirli bir monitör seçeneğiyle izlemek için şunu çalıştırın:
$ swatch -m kqueue_monitor /home/ostechnix/
Aşağıdaki komutta gösterildiği gibi -1 seçeneğini belirleyerek ilk olay seti alındıktan sonra da fswatch’dan çıkabilirsiniz:
$ fswatch -1 /home/ostechnix/
Bu komut, ilk olay grubu alındıktan hemen sonra çıkacaktır.
fswatch, belirtilen yoldaki tüm dosya/klasörlerdeki değişiklikleri izleyecektir. Yalnızca dizinlerde yapılan değişiklikleri izlemek istiyorsanız -d seçeneğini kullanın.
$ fswatch -d /home/ostechnix/
Tabii ki, daha fazla seçenek var. Ayrıntılı talimatlar için kılavuz sayfalarına veya projenin dokümantasyon sayfasına bakın.
$ man fswatch
Kaynak:
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.