Автор темы
#1
Açık Kaynakta “find” ile Kaynak Kullanımını İzleme
1) Temel amacın tanımlanması
Find, dosya tabanlı bir arama aracıdır; ancak kaynak kullanımı doğrudan sistem sayacı veya CPU/ RAM profili değildir. Yine de belirli zamanlarda hangi dosyaların büyüdüğünü, hangi kullanıcıların hangi dizinlerde yoğunluk oluşturduğunu tespit etmek için kullanışlıdır. Örneğin, belirli bir boyutun üzerindeki dosyaları ve son erişim/ değiştirme zamanlarını listelemek, sorunun kaynağını izlemek açısından yararlı olabilir.
2) Kaynak kullanımını dolaylı izleme için find ile kombinasyonlar
İçerik: En büyük 20 dosyayı gösterir; bu, hangi dosyaların disk alanını tükettiğini hızlıca görmeyi sağlar.
İçerik: Son 7 gün veya son gün içinde değişen dosyaları listeler; yoğun değişimi olan dizinleri hedefler.
İçerik: Kullanıcıya özel büyük dosyaları bulur; kullanıcı davranışlarını analiz etmeye yardımcı olur.
İçerik: Gün içindeki hareketleri ve bellek kullanımını ilişkilendirme çabasını gösterir.
İçerik: Diskteki değişiklikleri canlı olarak izler; log akışını anlamak için uygundur.
3) Pratik öneriler ve dikkat edilmesi gerekenler
4) Döngüsel izleme için basit bir senaryo
Bir günlük raporu haftalık olarak derleyip karşılaştırmak için:
İçerik: Otomatik olarak büyük dosyaları toplar ve bir CSV halinde saklar; analiz için uygun.
Bu yaklaşımla find temel olarak kaynak kullanımını doğrudan ölçmez, ancak dosya tabanlı yoğunlukları ve değişimleri izlemek için etkili bir başlangıç sağlar. Sistem izleme için hangi kombinasyonu seçeceğiniz, ortamınıza ve hedeflenen görünürlüğe bağlıdır. Bu yöntemi kendi altyapınızda nasıl uyguladığınızı ve hangi senaryolarda en çok hangi sonuçları elde ettiğinizi paylaşabilirsiniz.
Bir sunucuda hangi dosya veya süreçlerin ne kadar kaynak tükettiğini izlemek, performans sorunlarını önceden yakalamak için hayati olabilir. Özellikle log dosyalarının, konfigürasyonlarının veya kullanıcıya ait verilerin bulunduğu geniş dosya ağaçlarında kaynak kullanımını etkin biçimde takip etmek gerekir. Bu yazı, find komutunu tek başına veya diğer araçlarla kombinleyerek kaynak kullanımını izlemek üzerine pratİk bir rehber niteliğindedir.
1) Temel amacın tanımlanması
Find, dosya tabanlı bir arama aracıdır; ancak kaynak kullanımı doğrudan sistem sayacı veya CPU/ RAM profili değildir. Yine de belirli zamanlarda hangi dosyaların büyüdüğünü, hangi kullanıcıların hangi dizinlerde yoğunluk oluşturduğunu tespit etmek için kullanışlıdır. Örneğin, belirli bir boyutun üzerindeki dosyaları ve son erişim/ değiştirme zamanlarını listelemek, sorunun kaynağını izlemek açısından yararlı olabilir.
- - Özellikle /var/log, /tmp veya yedek dizinlerinde hızlı analiz için prune ve -size, -mtime, -ctime gibi kriterler kullanılır.
- - Güncel kurulumlarda disk alanı dolulukları, log rotasyonu ve kısa ömürlü dosyaların temizlenmesi için kritik ipuçları verir.
- - Belirli bir büyüklüğün üzerindeki dosyaları tespit etmek, disk kullanımındaki anormallikleri ortaya çıkarır; örneğin 100M üzeri tüm dosyaları listelemek için -size +100M kullanılır.
2) Kaynak kullanımını dolaylı izleme için find ile kombinasyonlar
- Disk alanı ve dosya boyutları üzerinden durum:
КОД
1find / -type f -size +100M -exec ls -lh {} \; | sort -k5 -r -h | head -n 20İçerik: En büyük 20 dosyayı gösterir; bu, hangi dosyaların disk alanını tükettiğini hızlıca görmeyi sağlar.
- Son değiştirilme zamanına göre inceleme:
КОД
12find /var/log -type f -mtime -7 -ls
find /home -type f -mtime -1 -not -path "[i]/.cache/[/i]" -lsİçerik: Son 7 gün veya son gün içinde değişen dosyaları listeler; yoğun değişimi olan dizinleri hedefler.
- Belirli kullanıcıya ait büyük dosyalar:
КОД
1find /home -user alice -type f -size +50M -lsİçerik: Kullanıcıya özel büyük dosyaları bulur; kullanıcı davranışlarını analiz etmeye yardımcı olur.
- Dosya değişim frekansını dolaylı izlemek:
КОД
12find /var -type f -iname "*.log" -mtime -1 -printf "%p %TY-%Tm-%Td %TH:%TM\n" | sort
find /proc -maxdepth 2 -type f -name 'status' -exec sh -c 'echo -n {}": "; awk '/VmPeak|VmSize/ {print $2" kB"}' {}' \; 2>/dev/nullİçerik: Gün içindeki hareketleri ve bellek kullanımını ilişkilendirme çabasını gösterir.
- Gerçek zamanda değişiklikleri takip etmek:
КОД
1inotifywait -m -r /var/log --format '%w%f %e' -e create,modify,delete
İçerik: Diskteki değişiklikleri canlı olarak izler; log akışını anlamak için uygundur.
3) Pratik öneriler ve dikkat edilmesi gerekenler
- Yetkilendirme: /root veya /etc dizinlerini tarayan komutlarda yetkili kullanıcı hesabıyla çalışın; güvenlik risklerini minimize edin.
- Performans: Büyük dosya taramalarında sistemi yavaşlatabilir. Planlı etiketler ve zamanlayıcılarla taramaları yoğun olmayan saatlere almak iyi bir pratiktir.
- Filtreleme: -path ile gereksiz dizinleri hariç tutun; örneğin log dizinlerinde sık karşılaşılan geçici dosyaları yok sayma.
- Raporlama: Sonuçları dosyaya yazdırın (tee) veya CSV formatına çevirin; uzun vadeli karşılaştırmalar için idealdir.
4) Döngüsel izleme için basit bir senaryo
Bir günlük raporu haftalık olarak derleyip karşılaştırmak için:
КОД
123456789
#!/bin/bash
DIRS="/var/log /home"
OUT="usage_report_$(date +%F).csv"
echo "path,filesize,mtime" > "$OUT"
for d in $DIRS; do
find "$d" -type f -size +10M -printf "%p,%kKB,%TY-%Tm-%Td\n" >> "$OUT"
done
exit 0
İçerik: Otomatik olarak büyük dosyaları toplar ve bir CSV halinde saklar; analiz için uygun.
Bu yaklaşımla find temel olarak kaynak kullanımını doğrudan ölçmez, ancak dosya tabanlı yoğunlukları ve değişimleri izlemek için etkili bir başlangıç sağlar. Sistem izleme için hangi kombinasyonu seçeceğiniz, ortamınıza ve hedeflenen görünürlüğe bağlıdır. Bu yöntemi kendi altyapınızda nasıl uyguladığınızı ve hangi senaryolarda en çok hangi sonuçları elde ettiğinizi paylaşabilirsiniz.
