Sunucuda Dosya Değişikliklerini Anlık İzleme: inotifywait

Sunucularınızda dosya sistemindeki değişiklikleri anlık olarak izlemek, güvenlik, yedekleme ve otomasyon süreçleri için kritik öneme sahiptir.

Sunucularınızda dosya sistemindeki değişiklikleri anlık olarak izlemek, güvenlik, yedekleme ve otomasyon süreçleri için kritik öneme sahiptir. inotifywait, Linux tabanlı sistemlerde inotify mekanizmasını kullanan güçlü bir komut satırı aracıdır. Bu araç, dosya veya dizinlerdeki oluşturma, silme, değiştirme gibi olayları gerçek zamanlı olarak yakalar ve belirli eylemleri tetikleyebilir. Özellikle paylaşımlı sunucularda, geliştirme ortamlarında veya log dosyalarının yoğun kullanıldığı senaryolarda vazgeçilmezdir. Bu makalede, inotifywait’in kurulumundan ileri düzey kullanımlarına kadar adım adım rehberlik ederek, sunucunuzu daha proaktif yönetmenize yardımcı olacağız.

inotifywait’in Kurulumu ve Temel Yapısı

inotifywait, inotify-tools paketi içinde yer alır ve çoğu modern Linux dağıtımında kolayca kurulabilir. Ubuntu veya Debian tabanlı sistemlerde şu komutu çalıştırarak yükleyin: sudo apt update && sudo apt install inotify-tools. CentOS/RHEL için ise sudo yum install inotify-tools veya sudo dnf install inotify-tools kullanın. Kurulum sonrası, aracın sürümünü inotifywait --version ile doğrulayın. Bu araç, kernel’in inotify alt sistemini kullanır; bu nedenle sistem limitlerini kontrol etmek için cat /proc/sys/fs/inotify/max_user_watches komutunu inceleyin. Gerekirse sysctl ile artırabilirsiniz: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p.

Temel syntax’ı inotifywait [seçenekler] dosya/dizin şeklindedir. Yaygın seçenekler arasında -m (sürekli izleme), -r (rekürsif dizin izleme), -e (belirli olaylar: create, modify, delete) bulunur. Örneğin, bir dizini sürekli izlemek için inotifywait -m -r /var/log komutunu terminalde çalıştırın; bu, log dosyalarındaki her değişikliği ekrana basar. Bu yapı, cron job’lar veya script’lerle entegre edilerek otomasyon sağlar. Kurulum ve temel testler tamamlandıktan sonra, aracın dosya tanımlayıcı (fd) limitlerine dikkat edin; yoğun dizinlerde yüksek watch sayısı sorun yaratabilir.

Pratik Kullanım Örnekleri

Dosya Oluşturma ve Silme İzleme

Belirli bir dizindeki yeni dosya oluşturmalarını yakalamak için inotifywait -m -e create,delete /home/user/uploads komutunu kullanın. Bu komut, her olayda timestamp, dizin yolu ve olay tipini raporlar. Pratikte, bir upload dizinini izleyerek yeni dosyaları otomatik olarak işlemek mümkündür. Örneğin, bir bash script’i ile entegre edin: #!/bin/bash\nwhile inotifywait -e create /path/to/dir; do\n echo "Yeni dosya oluştu, işlem başlıyor..."\n # İşlem kodları\nfi. Bu yaklaşım, medya dosyalarının anında işlenmesi veya virüs taraması için idealdir. Test ederken, dizine manuel dosya ekleyin ve çıktıyı gözlemleyin; hatalı yol belirtimi yaygın bir sorundur.

Dizin İçi Değişiklikler ve Rekürsif İzleme

Rekürsif izleme ile alt dizinleri kapsayın: inotifywait -m -r -e modify,move /etc. Bu, konfigürasyon dosyalarındaki değişiklikleri yakalar. Çıktı formatını özelleştirmek için --format '%w%f %e' ekleyin; bu, tam yol ve olay bilgisi verir. Güvenlik ekipleri, kritik dizinleri izleyerek yetkisiz değişiklikleri log’lar. Bir örnek script: Değişiklik tespit edildiğinde rsync ile yedekleme yapın. Yoğun sistemlerde CPU kullanımını minimize etmek için olay filtrelemesi uygulayın; gereksiz watch’ları önleyin.

Otomatik Eylemler ve Script Entegrasyonu

inotifywait’i while döngüsüyle script’lere gömerek eylemler tetikleyin. Örnek: Log dosyası değiştiğinde e-posta gönderin – inotifywait -e modify /var/log/auth.log | while read path action file; do\n echo "Değişiklik: $file" | mail -s "Log Uyarısı" [email protected]\ndone. Bu, intrusion detection için uygundur. Daemon olarak çalıştırmak için nohup veya systemd service kullanın. Service dosyası örneği: [Unit]\nDescription=inotifywait Monitor\n[Service]\nExecStart=/usr/bin/inotifywait -m -e create /target/dir\nRestart=always\n[Install]\nWantedBy=multi-user.target. Bu entegrasyon, sunucu yönetimini verimli kılar.

Gelişmiş İpuçları ve En İyi Uygulamalar

Yüksek trafikli sunucularda performans optimizasyonu şarttır. Watch limitini artırın ve -q (sessiz mod) ile gereksiz çıktıları bastırın. Birden fazla dizini izlemek için paralel instance’lar oluşturun, ancak fd limitlerini ulimit -n 65536 ile yükseltin. Hata yönetimi için timeout ekleyin: inotifywait -t 10 .... Log rotasyonu sırasında false positive’leri filtrelemek adına olay zincirlerini analiz edin. Güvenlik için root dışı kullanıcılarla çalıştırın ve SELinux/AppArmor politikalarını doğrulayın.

  • Sürekli izleme için -m zorunludur; yoksa tek olay sonrası çıkar.
  • Rekürsif kullanımda (-r) büyük dosya ağaçlarında bellek tüketimine dikkat edin.
  • Çıktıyı pipe’layarak awk/sed ile parse edin: inotifywait ... | grep "CREATE".
  • Üretimde systemd veya supervisord ile daemonize edin.

Bu ipuçları, inotifywait’i ölçeklenebilir kılar. Düzenli testlerle sisteminizi güçlendirin.

Sonuç olarak, inotifywait sunucularınızda proaktif dosya izleme sağlayarak operasyonel verimliliği artırır. Bu aracı günlük iş akışınıza entegre ederek, potansiyel sorunları önleyin ve otomasyonu maksimize edin. Düzenli bakım ve limit ayarlarıyla uzun vadeli başarı elde edeceksiniz; pratik uygulamalarla başlayın ve ihtiyaçlarınıza göre uyarlayın.

Kategori: Sunucu Yönetimi
Yazar: Lorem
çerik: 611 kelime
Okuma Süresi: 5 dakika
Zaman: Bugün
Yayım: 24-02-2026
Güncelleme: 24-02-2026