Mövzunu Açan
#1
[quote]Konuya genel bir bakış: find komutu, dosya sistemi üzerinde belirli kriterlere göre arama yapmanızı ve bu aramadan elde ettiğiniz sonuçları farklı biçimlerde raporlamanızı sağlar. Özellikle kök dizine bağlı binlerce dosyanın bulunduğu ortamlarda, hangi dosya türlerinin var olduğunu, belirli tarihlere sahip dosyaları veya izinleriyle ilgili durumları hızlıca özetlemek için kullanışlı bir araçtır. Aşağıda, yaygın ihtiyaçlar için uygulanabilir senaryolar ve rapor oluşturma teknikleri sunulmuştur.
1) Dosya sayısını ve genel yapıyı raporlama
Bir dizin ağacında bulunan dosya sayısını ve alt dizinleri özetlemek için:
Bu iki komut, toplam dosya sayısını ve dizin sayısını basit bir rapor halinde verir. Eğer alt dizinleri dahil etmek istemiyorsanız -maxdepth kullanarak raporu daraltabilirsiniz:
2) Belirli kriterlere göre filtreleme ve özet raporları
Belirli uzantılara sahip dosyaları rapor etmek için:
İzinleri 644 veya belirli bir modda olan dosyaları raporlamak için:
Bu çıktılar, hangi dosyaların politikaya uyduğunu hızlıca özetler.
3) Tarihsel raporlama: son değişiklikler ve karşılaştırmalar
Son 7 gün içinde değiştirilmiş dosyaları bulup özetlemek:
Ayrıca belirli bir tarih aralığını görmek için -newerXY/ -newerct gibi seçeneklerle karşılaştırmalı raporlar üretebilirsiniz.
4) Dosya boyutu üzerinden raporlama
Büyük dosyaları listelemek ve boyutlarına göre sıralamak:
İstersen çıktıyı boyuta göre filtrelemek için awk ile bir eşik belirleyebilirsin:
5) Raporun çıktısını düzenli bir dosyaya aktarma
Bir raporu düzenli bir dosyada tutmak için:
Sonuçları birleşik bir tablo halinde görmek için temel bir yaklaşım da mümkün:
Bu teknikler, find ile rapor oluşturmada esnekliğinizi artırır ve günlük, güvenlik veya bakım süreçlerinde hızlı kararlar almanıza yardımcı olur. Kullandığınız iş akışına göre -printf formatını ve filtreleri ayarlayarak farklı raporlar elde etmek mümkün. Başka hangi kriterler üzerinden rapor üretmek istersiniz? Örneğin izin, kullanıcı sahipliği veya yapılan değişiklikler gibi ek filtreler üzerine konuşalım.
1) Dosya sayısını ve genel yapıyı raporlama
Bir dizin ağacında bulunan dosya sayısını ve alt dizinleri özetlemek için:
KOD
12find /hedef/klasor -type f | wc -l
find /hedef/klasor -type d | wc -l
Bu iki komut, toplam dosya sayısını ve dizin sayısını basit bir rapor halinde verir. Eğer alt dizinleri dahil etmek istemiyorsanız -maxdepth kullanarak raporu daraltabilirsiniz:
KOD
1find /hedef/klasor -maxdepth 2 -type f | wc -l
2) Belirli kriterlere göre filtreleme ve özet raporları
Belirli uzantılara sahip dosyaları rapor etmek için:
KOD
1find /hedef/klasor -type f -name "*.log" -printf "%p\n" | wc -l
İzinleri 644 veya belirli bir modda olan dosyaları raporlamak için:
KOD
1find /hedef/klasor -type f -perm 0644 -printf "%p\n" | wc -l
Bu çıktılar, hangi dosyaların politikaya uyduğunu hızlıca özetler.
3) Tarihsel raporlama: son değişiklikler ve karşılaştırmalar
Son 7 gün içinde değiştirilmiş dosyaları bulup özetlemek:
KOD
1find /hedef/klasor -type f -mtime -7 -printf "%TY-%Tm-%Td %TH:%TM %p\n" | sort
Ayrıca belirli bir tarih aralığını görmek için -newerXY/ -newerct gibi seçeneklerle karşılaştırmalı raporlar üretebilirsiniz.
4) Dosya boyutu üzerinden raporlama
Büyük dosyaları listelemek ve boyutlarına göre sıralamak:
KOD
1find /hedef/klasor -type f -printf "%kKB %p\n" | sort -n -k1
İstersen çıktıyı boyuta göre filtrelemek için awk ile bir eşik belirleyebilirsin:
KOD
1find /hedef/klasor -type f -printf "%s %p\n" | awk '$1>=1048576' | sort -nr
5) Raporun çıktısını düzenli bir dosyaya aktarma
Bir raporu düzenli bir dosyada tutmak için:
KOD
1find /hedef/klasor -type f -name "*.conf" -printf "%p\t%kKB\t%TY-%Tm-%Td\n" > rapor.txt
Sonuçları birleşik bir tablo halinde görmek için temel bir yaklaşım da mümkün:
KOD
1printf "dosya_path\tboyut_kb\tson_degistirme\n"; find /hedef/klasor -type f -printf "%p\t%k\t%TY-%Tm-%Td %TH:%TM\n" | sort
Bu teknikler, find ile rapor oluşturmada esnekliğinizi artırır ve günlük, güvenlik veya bakım süreçlerinde hızlı kararlar almanıza yardımcı olur. Kullandığınız iş akışına göre -printf formatını ve filtreleri ayarlayarak farklı raporlar elde etmek mümkün. Başka hangi kriterler üzerinden rapor üretmek istersiniz? Örneğin izin, kullanıcı sahipliği veya yapılan değişiklikler gibi ek filtreler üzerine konuşalım.
