Sunucuda Dosya Senkronizasyonu: rsync, lsyncd, Unison ve Pratik Senaryolar
Sunucuda Dosya Senkronizasyonu: rsync, lsyncd, Unison ve Pratik Senaryolar
Son Güncelleme: Mart 2026
Dosya senkronizasyonu sunucu yönetiminde hem yüksek erişilebilirlik hem de yedekleme (backup) süreçleri için kritik bir rol oynar. Bu makalede rsync, lsyncd ve Unison araçlarının farkları, kullanım senaryoları, yapılandırma örnekleri ve güvenlik-depolama en iyi uygulamaları ele alınacaktır.
İçindekiler
- Giriş
- rsync Nedir?
- lsyncd Nedir?
- Unison Nedir?
- Senkronizasyon Mimarileri
- Kurulum ve Kullanım Örnekleri
- Araç Karşılaştırması
- Güvenlik ve Yedekleme İpuçları
- Sıkça Sorulan Sorular
- Sonuç
rsync Nedir?
rsync, dosya ve dizinleri yerel veya uzak sistemler arasında verimli şekilde kopyalamak ve güncellemek için kullanılan bir komut satırı aracıdır. rsync; delta-transfer (yalnızca değişen blokları aktarma) ve sıkıştırma desteği ile bant genişliği tasarrufu sağlar. Linux/Unix tabanlı sistemlerde yaygın olarak kullanılır.
Temel Özellikler
- Verimlilik: Değişen blokların taşınmasıyla düşük veri transferi.
- Ağ Üzerinden Çalışma: SSH tüneli ile güvenli aktarım.
- Adil Yetki: Dosya izinleri, zaman damgaları ve sahiplikleri koruma.
Basit rsync Komutu
rsync -avz --delete /var/www/ user@backup.example.com:/backups/www/
Bu komut -a (archive), -v (verbose), -z (compress) parametreleriyle kaynak klasörü uzaktaki hedefe senkronize eder ve hedefde kaynakta olmayan dosyaları siler (--delete).
lsyncd Nedir?
lsyncd (Live Syncing Daemon), dosya değişikliklerini izleyerek hızlı şekilde rsync veya diğer komutlar aracılığıyla anlık (near-real-time) senkronizasyon yapar. Büyük dosya sistemleri veya web içeriği için etkin bir replikasyon çözümüdür.
Temel Özellikler
- Inotify/FSWatcher: Dosya sistemi olaylarını izleyerek tetikleme.
- Gruplama: Çok sayıda değişikliği toplu işleyerek aşırı yüklenmeyi önleme.
- Esneklik: rsync, scp veya özel betikler ile entegrasyon.
Örnek lsyncd Konfigürasyonu
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
inotifyMode = "CloseWrite or Modify"
}
sync {
default.rsync,
source = "/var/www/",
target = "user@backup.example.com:/backups/www/",
rsync = { archive = true, compress = true, verbose = true }
}
Unison Nedir?
Unison, iki yönlü (bidirectional) senkronizasyon sağlayan, çakışma çözümü (conflict resolution) yetenekleri olan bir araçtır. Hem yerel hem de uzak dizinleri senkronize edebilir. rsync tek yönlü senkronizasyon için idealken, Unison eş zamanlı düzenlemelerin olduğu senaryolarda tercih edilir.
Temel Özellikler
- İki Yönlü Senkronizasyon: Her iki taraftaki değişiklikleri karşılaştırır ve birleştirir.
- Çakışma Yönetimi: Çakışmaları kullanıcıya sorarak veya kurala göre çözer.
- Platformlar Arası: Linux, macOS ve Windows destekleri mevcuttur.
Unison Örnek Kullanımı
unison /home/user/project ssh://backup.example.com//home/user/project -auto -batch
-auto ve -batch seçenekleri çakışmaları otomatik çözme eğilimindedir; üretim ortamında dikkatli kullanılmalıdır.
Senkronizasyon Mimarileri
İhtiyaca göre farklı mimariler seçilebilir. Aşağıda sık kullanılan üç mimari açıklanmıştır.
- Master-Slave (Tek Yönlü Replikasyon): Ana sunucudan (master) yedek sunucuya (slave) veri aktarılır. Web içeriği dağıtımı ve yedeklemelerde yaygındır.
- Active-Active (Çift Yönlü Replikasyon): İki veya daha fazla düğümde hem okuma hem yazma vardır; tutarlılık mekanizmaları gerekir. Unison veya veritabanı replikasyon çözümleriyle kullanılır.
- Push vs Pull: Push mimarilerinde kaynak değişikliği hedefe gönderir (lsyncd/rsync push), pull mimarisinde hedef düzenli aralıklarla kaynaktan çeker (cron+rsync pull).
Araç Karşılaştırması
| Özellik | rsync | lsyncd | Unison |
|---|---|---|---|
| Senkr. Tipi | Tek yönlü | Tek yönlü, near-real-time | Çift yönlü |
| Ağ Verimliliği | Yüksek (delta-transfer) | Yüksek (rsync aracı kullanır) | İyi, değişimleri karşılaştırır |
| Çakışma Yönetimi | Yok (manuel çözüm gerekir) | Yok (rsync ile aynıdır) | Var (kullanıcı müdahalesi/kurallar) |
| Gerçek Zamanlık | Hayır (cron ile kısa aralık sağlanır) | Evet (inotify tabanlı) | Kısıtlı (manuel tetikleme veya sürekli çalıştırma) |
| Örnek Kullanım | Yedekleme, tek yönlü replikasyon | Web içeriği eş zamanlama | Çoklu kullanıcı düzenleme ortamları |
Kurulum ve Kullanım Örnekleri
Aşağıda üç aracın pratik kurulum ve kullanımı yer almaktadır. Örnekler Ubuntu/Debian tabanlı dağıtımlar içindir; diğer dağıtımlarda paket yöneticisi farkı olacaktır.
rsync ile Günlük Yedekleme (cron)
# /etc/cron.daily/rsync-backup
rsync -az --delete /var/www/ backup@backup.example.com:/backups/www/ >> /var/log/rsync/backup.log 2>&1
Bu örnek günlük yedekleme sağlar. --delete kullanımı hedefin kaynakla birebir eşleşmesini sağlar, dikkatli planlayın.
lsyncd ile Anlık İçerik Replikasyonu
lsyncd kurulduktan sonra yukarıdaki konfigürasyon dosyasıyla servisi başlatın:
sudo apt install lsyncd
sudo systemctl enable --now lsyncd
lsyncd, /var/www/ içindeki değişiklikleri tespit edip rsync ile hedefe gönderir. Bu yöntem özellikle CDN öncesi orijin sunucu eşitlemesi için uygundur.
Unison ile İki Yönlü Çalışma
İki yönlü çalışma gereken durumlarda (ör. geliştirici bilgisayarı ile sunucu arasında dosya senkronu) Unison tercih edilir:
sudo apt install unison
unison default -auto -batch
Unison profil dosyalarında hangi yolların eşleneceği ve davranış kuralları (ignore list, prefer parametreleri) tanımlanır.
Güvenlik ve Yedekleme İpuçları
Dosya senkronizasyonu planlarken dikkat edilmesi gerekenler:
- SSH Anahtar Yönetimi: Özellikle rsync/lsyncd ile SSH anahtar tabanlı kimlik doğrulama kullanın ve
authorized_keysdosyasında uygun komut ve kısıtlamalar ekleyin. - Yetki Ayrımı: Senkronizasyon işlemleri için ayrı kullanıcı hesabı (service account) kullanın; root ile doğrudan çalıştırmayın.
- Şifreleme: Ağ üzerinde veri aktarımı için her zaman SSH veya TLS tüneli kullanın.
- Geri Dönüş (Rollback): Senkronizasyon öncesi hedefte snapshot veya zamanlanmış yedek (ör. LVM snapshot, ZFS snapshot) tutarak yanlış senkronlarda geri dönüş sağlayın. Corelux'un Yedekleme Hizmeti bu konuda yardımcı olabilir.
- Audit (Kayıt) ve İzleme: rsync/lsyncd loglarını merkezi bir log sunucusuna gönderin ve değişiklikleri izleyin.
Ayrıca, yük dengeleme veya çoklu sunucu dağıtımlarında senkronizasyonu planlarken, taşıma gecikmesi (latency) ve dosya kilitlenmeleri (file locking) göz önünde bulundurulmalıdır. Eğer VPS/VDS altyapısında çalışıyorsanız Corelux'un Türkiye VPS Sunucu veya yüksek performans gerektiren durumlarda Bulut Sunucu çözümlerini inceleyebilirsiniz.
Sıkça Sorulan Sorular
Hangi araç daha hızlıdır: rsync mi yoksa lsyncd mi?
rsync tek seferlik veya zamanlanmış görevlerde hızlı ve verimliyken, lsyncd inotify temelli sürekli izleme sayesinde near-real-time (yakın gerçek zamanlı) replike etme avantajı sağlar. Performans ihtiyacına göre seçim yapın.
Unison neden tercih edilir?
Unison, iki taraflı düzenlemelerin sık olduğu ortamlar için çakışma çözümü sunar. Geliştirici-masaüstü ile sunucu arasındaki çift yönlü senkronizasyon için uygundur.
rsync ile dosya silme riskini nasıl azaltırım?
--delete parametresi tehlikeli olabilir. Önce --dry-run ile test edin:
rsync -avz --dry-run --delete /var/www/ backup:/backups/www/ Ayrıca hedefte snapshot veya yedek tutmak iyi pratiktir.
lsyncd çok fazla CPU tüketirse ne yapmalıyım?
lsyncd konfigürasyonunda delay veya batching parametrelerini kullanarak olayları gruplayın. Ağ veya disk darboğazı varsa rsync parametreleriyle throttling (örn. --bwlimit) uygulayın.
Büyük dosyalar için en iyi yaklaşım nedir?
Büyük dosyalar için delta-transfer etkisi azalır; mümkünse dosyaları chunk'lara bölün, veya büyük dosyaları nesne depolama (object storage) kullanarak yönetin. Ayrıca transfer zamanlarını düşük trafikli saatlere planlayın.
Sonuç
Sunucuda dosya senkronizasyonu doğru araç ve mimari seçimiyle hem performans hem de veri bütünlüğü sağlar. Tek yönlü yedekleme için rsync, anlık replikasyon için lsyncd, iki yönlü düzenlemeler için ise Unison tercih edilebilir. Her durumda SSH anahtar yönetimi, yetki ayrımı ve snapshot tabanlı geri dönüş stratejileri uygulayın.
Corelux olarak, senkronizasyon ve yedekleme ihtiyaçlarınız için ölçeklenebilir Türkiye VPS Sunucu, yüksek performanslı Bulut Sunucu ve profesyonel Yedekleme Hizmeti çözümlerimiz ile yardımcı oluyoruz. İhtiyacınıza uygun planlama için destek ekibimizle iletişime geçebilirsiniz.
Yazar
Boran BAR