Autor del tema
#1
rsync ile günlük filtreleme: pratik ipuçları ve yapılandırma örnekleri
Günlük filtreleme konusunda arka planı güçlendirmek için hangi senaryoyu hedefliyorsunuz? Log dizinleri mi, geçici dosyalar mı yoksa bazı kilitli dosyaların korunması mı öncelikli? Ayrıca mevcut altyapınızda crontab mı yoksa systemd timer mı kullanmayı planlıyorsunuz, bununla ilgili kısa bir durum paylaşırsanız, size daha net bir yapılandırma önerisi sunayım.
Günlük filtreleme, rsync ile veri koruma ve bant genişliği yönetimini dengelerken kritik bir rol oynar. Aşağıda günlük olarak hangi dosyaların, hangi kurallarla hedeflenen depoya alınacağını belirlemek için kullanabileceğiniz yöntemleri adım adım ele alıyorum. Bu ihtiyaçlar, çoğu kurumsal yedekleme senaryosunda karşılaşılan türden, sık değişen log dosyaları, geçici dosyalar veya belirli klasörlerin periyodik olarak senkronize edilmesi gibi durumları kapsar.
- Temel yaklaşım: filtre dosyaları ile hassas kontrollü senkronizasyon
Rsync’in --filter veya --exclude/--include seçenekleriyle hangi yolların işleneceğini net şekilde ifade edin. Örneğin günlük olarak yedeklemek istediğiniz belirli alt dizinler için include kurallarıyla başlayıp, istemediğiniz dosya türlerini exclude ile temizleyin. Filtre dosyası kullanımı, birden çok kurala kolayca ekleme ve değişiklik yapma imkanı verir. - Günlük bir süreç için güvenli ve tekrarlanabilir komut tasarımı
Zamanla değişmeyen hedefler için sabit komutlar oluşturun; dinamik parça olarak kaynak yollarını değişkenle ifade edin. Örneğin:
rsync -avz --delete --progress --filter='protect /etc/secret/' --filter='- *.tmp' /kaynak/ /hedef/
Burada --delete hedefte kayıpları temizler, --filter ile hassas dosyalar korunur ve istenmeyen geçici dosyalar hariç tutulur. - Zamanlayıcılar ve günlük işlem akışı
Günlük çalıştırmalar için crontab veya sistemd timer kullanımı idealdir. Örnek crontab girdisi:
0 2 * * * rsync -a --delete --log-file=/var/log/rsync_daily.log --filter='- *.tmp' /kaynak/ /hedef/
Bu, her gün sabah 02:00’da çalışır ve log dosyasına ayrıntılı çıktı yazar. Günlük filtreleme için log analizi, hangi dosyaların neden kopyalandığını anlamayı kolaylaştırır. - İki yönlü filtreleme ve güvenlik
Kaynağın dışında hedefte saklı olan güvenlik odaklı filtreler de önemlidir. Örneğin, belirli kullanıcı dizinlerini veya anahtar dosya türlerini filtrelemek, kritik verilerin izinsiz çoğaltılmasını engeller. Ayrıca rsync’in --chmod veya --xattrs gibi parametrelerle hedef üzerinde erişim denetimini de düşünün. - Performans ve bant genişliği dengesi
Sık değişen log dosyaları için—exclude ile sık değiştirmeyen arşivleri ayırabilir, sık değiştirileni ise sadece metadata ile senkronize edebilirsiniz. Ayrıca --bwlimit ile günlük bant genişliği sınırı koyabilir, -z ile sıkıştırmayı etkinleştirebilirsiniz. İnce ayar için rsynclog analizleriyle hangi dosya kümelerinin en çok değiştiğini izleyin. - İyileştirme: filtre dosyasını merkezi şekilde yönetmek
Bir filtre dosyası oluşturarak tüm günlük senkronizasyonlarını bu dosya üzerinden yönetin. Örneğin /etc/rsync.daily.filters içeriğini:
- /var/log//*
- /var/tmp/
- *.tmp
- /proc/**
Bu dosyayı rsync komutlarında --filter=',protect /etc/rsync.daily.filters' ile kullanın. Değişiklikler tek bir yerde yapılır ve tüm günlük işler etkilenir. - Hata yönetimi ve gözlem
rsync günlüklerini merkezi log sunucusuna yönlendirmek için --log-file veya syslog entegrasyonunu kullanın. Başarısızlık durumunda e-posta veya uyarı sistemiyle bildirim kurun; hatalarda hangi filtrelerin tetiklendiğini loglardan teyit edin.
Günlük filtreleme konusunda arka planı güçlendirmek için hangi senaryoyu hedefliyorsunuz? Log dizinleri mi, geçici dosyalar mı yoksa bazı kilitli dosyaların korunması mı öncelikli? Ayrıca mevcut altyapınızda crontab mı yoksa systemd timer mı kullanmayı planlıyorsunuz, bununla ilgili kısa bir durum paylaşırsanız, size daha net bir yapılandırma önerisi sunayım.
