Konuyu Açan
#1
rsync ile Dosya Eşitleme
1) Rsync’in çalışma prensibi ve temel akış
2) Basit bir eşitleme senaryosu
3) Hız ve güvenlik için önemli parametreler
4) Tipik kullanım örnekleri
5) Karşılaşılan sorunlar ve çözüm ipuçları
Bu konu üzerinde kendi yapılandırman var mı? Özellikle hangi senaryolarda rsync kullanmayı düşünüyorsun ve karşılaştığın pratik sorunlar nelerdir?
İş akışını hızlandıran, güvenilir ve esnek bir yedek/eşitleme aracı ararken rsync hiç kuşkusuz ilk duraklardan biridir. Bu yazıda rsync’in temel mantığını, sık karşılaşılan yapılandırma parametrelerini ve gerçek dünya senaryolarını adım adım ele alıyorum. Amacım, hızlıca kurup güvenli bir şekilde dosyaları eşitlemenizi sağlamak; teknik kısmı mümkün olduğunca uygulanabilir örneklerle göstermek.
1) Rsync’in çalışma prensibi ve temel akış
- rsync, uzak bir hedefe veya yerel bir hedefe dosya parçalarını karşılaştırır ve sadece değişen blokları kopyalar. Böylece ağ trafiği ve disk yazma işlemleri minimuma iner.
- Temel komut yapısı: rsync [opsiyonlar] kaynak hedef
- Varsayılan davranış, kaynak ve hedef arasındaki farkları hesaplayıp eksik/güncel olmayan dosyaları kopyalamaktır.
2) Basit bir eşitleme senaryosu
- Yerel eşitleme: rsync -avh /kaynak/ /hedef/
- -a: arşiv modu (dosya izinleri, zaman damgaları, sembolik bağlantılar vs. korunur)
- -v: ayrıntılı çıktı
- -h: okunabilir boyutlar
- Uzak hedefe güvenli aktarım: rsync -avhz /kaynak/ kullanıcı@sunucu:/hedef/
- -z: sıkıştırma, ağ üzerinden transfersaydındaki maliyetleri azaltır
- SSH ile güvenli bağlantı varsayılandır: çoğu kurulum için default olarak SSH ile çalışır
3) Hız ve güvenlik için önemli parametreler
- --delete: hedefte olup kaynakta olmayan dosyaları siler; yedekleme senaryolarında dikkatli kullanılmalı
- --exclude / --exclude-from: belirli dosya tiplerini veya klasörleri eşitlemeden hariç tutar
- --checksum: dosya özetine göre karşılaştırma yapar; ama ek maliyetlidir ve çok büyük kaynaklarda önerilmez
- -P veya --progress: ilerleme bilgisini gösterir; uzun zaman alan transferlerde faydalıdır
- -e "ssh -p 2222" gibi özel SSH yapılandırmalarıyla port değiştirme yapılabilir
4) Tipik kullanım örnekleri
- Yedek almak ve yıldızlar gibi sık kullanılan yapı: rsync -avz --delete /var/www/ /mnt/backup/www/
- Dışarıya sadece değişen kısımları göndermek: rsync -avz --progress --partial --inplace /kaynak/ kullanıcı@sunucu:/hedef/
- Belirli dosya türlerini hariç tutmak: rsync -avz --exclude '*.log' /kaynak/ /hedef/
5) Karşılaşılan sorunlar ve çözüm ipuçları
- Bağlantı kesildiğinde devam etmek: rsync -avz --partial --progress /kaynak/ kullanıcı@sunucu:/hedef/
- dosya izinleriyle ilgili sorunlar: -a modu izinleri ve sahiplik bilgilerini korur; farklı kullanıcı bağlamında çalışırken --no-perms --no-owner gibi seçenekler düşünülebilir
- büyük dizinlerde performans: --max-delete=1000 gibi sınırlar koyarak kaynak üzerindeki yükü dengelemek mümkün
Etkin bir rsync kullanımı, doğru temel parametreler ve net bir hedef-durum farkı kavrayışıyla başlar. Özetle, aktif yedekleme veya eşitleme süreçlerinde rsync’in akıllı fark hesaplama gücü ve SSH tabanlı güvenli iletişimi birleşince güvenilir bir çözüm elde edilir.
Bu konu üzerinde kendi yapılandırman var mı? Özellikle hangi senaryolarda rsync kullanmayı düşünüyorsun ve karşılaştığın pratik sorunlar nelerdir?
