Find ile değişiklikleri karşılaştırma

0 Cavab 5 Baxış
Qiymətləndirənlər
İştirakçılar
Mövzunu Açan #1
Find ile değişiklikleri karşılaştırma

Günlük dosyaları, sürümlü dosya yapıları ya da yedeklerden gelen farkları incelemek için kullanılan temel araçlardan biri olan find ile değişiklikleri karşılaştırmak çoğu zaman ilk bakışta karmaşık görünebilir. Bu yazıda, doğrudan karşılaştırmadan ziyade, hangi durumlarda find ile farkları izleyebileceğinizi ve diğer komutlarla birlikte nasıl çalışacağını somut örneklerle anlatacağım.


İlk bakışta, find tek başına bir “değişiklik karşılaştırıcısı” değildir. Ancak belirli kriterlerle arama yapıp, bulunan dosyaların son değiştirilme zamanları, boyutları veya içeriği üzerinde karşılaştırma yapmak mümkündür. Aşağıda bu yaklaşımı adım adım ele alıyoruz:

  • Değişiklik zamanına göre karşılaştırma

  • Belirli bir tarih aralığında değiştirilmiş dosyaları bulmak için: find . -type f -newermt "2024-01-01" ! -newermt "2024-06-01" Bu, 2024'in ilk yarısında törpülenmiş tüm dosyaları getirir. Ardından bu sonuçlar üzerinde diff benzeri karşılaştırma yapılabilir.


  • Dosya boyutu üzerinden farklar

  • İki zaman diliminde oluşan farkları tespit etmek için önce aralık için dosyaları listeleyip sonra karşılaştırabilirsiniz: find . -type f -size +1k -size -100k -printf "%p\n" > /tmp/odev1.txt; find . -type f -mtime -30 -printf "%p\n" > /tmp/odev2.txt; sort /tmp/odev1.txt /tmp/odev2.txt | uniq -u Bu tür adımlar, değişen dosyaların izini sürmede yardımcı olur.


  • İçerik değişikliklerinin karşılaştırılması

  • İçeriğin kendisini karşılaştırmak için iki farklı anda kaydedilmiş dosyaların kopyalarını alın ve diff ile karşılaştırın: diff -u file_old.txt file_new.txt Bu, satır bazında değişiklikleri belirler. Find ile elde edilen dosyaların içeriğini bu şekilde karşılaştırmak için önce ilgili dosya sürümlerinin yollarını bir listeye aktarın.


  • Otomasyon ve geçmiş karşılaştırma

  • Zamanlanmış görevler ile düzenli olarak değişiklikleri izlemek için find çıktısını bir arşive ekleyebilir veya rsync ile değişiklikleri bir hedefe senkronize ederken farkları kaydedebilirsiniz. Örneğin: find /var/log -type f -mtime -1 -exec cp --parents {} /backup/daily_logs/ \; Bu tür akışlar, değişiklik izleme sürecini kolaylaştırır.


Kısıtlı örneklerle bile, find tek başına değişiklik karşılaştırması için doğrudan bir diff aracı değildir; fakat uygun filtreler, dosya listelerinin tutulması ve diğer komutlarla entegrasyon yoluyla değişiklikleri izlemek ve odaklanmak mümkündür. Bu yaklaşımı kendi altyapınıza göre özelleştirmek için hangi senaryolarda sık değişiklik beklediğinizi belirtirseniz, daha net bir akış ve komut dizisi önerebilirim.

Cavab vermək üçün daxil olmalısınız.

Bu mövzunu görüntüləyən istifadəçilər (Cəmi: 3, Üzvlər: 3, Qonaqlar: 0)
Cəmi: 3 (üzvlər: 3, qonaqlar: 0)
0 sitat seçildi