Rehber 20 Temmuz 2026 · 6 dakika okuma

rsync ile sunucular arası veri senkronizasyonu rehberi (2026)

rsync ile VDS/VPS’ler arasında güvenilir senkronizasyon kurun. SSH anahtarı, doğru parametreler, test ve geri alma adımlarıyla net rehber.

Sunucu yönetiminde en sık karşılaşılan ihtiyaçlardan biri, iki veya daha fazla sistem arasında veriyi tutarlı tutmaktır. Manuel kopyalama hem zaman kaybettirir hem de “güncel mi değil mi” belirsizliği doğurur. Bu rehberde rsync ile sunucular arası veri senkronizasyonunu, pratik komutlar ve kontrol listesiyle net şekilde kurmayı öğreneceksiniz. Hedefiniz, yanlış silme riskini azaltıp performansı artırmak ve senkronizasyonu ölçülebilir hale getirmektir.

rsync nedir, neden tercih edilir?

rsync (remote sync), iki dizin arasındaki farkları bulup sadece değişen kısımları kopyalar. Bu sayede ağ trafiğini ve süreyi azaltır. rsync’nin öne çıkan tarafı, küçük dosya değişikliklerinde hızlı çalışması ve aynı işi tekrar tekrar yaptığınızda tutarlı sonuç üretmesidir.

rsync ile tipik senaryolar: - Web sunucusu ile yedek sunucusu arasında dosya senkronu - Uygulama kodunu birden fazla VDS/VPS’e dağıtma - Log veya içerik arşivini başka bir sunucuya aktarım - Geliştirme (dev) → üretim (prod) arasında dosya tabanlı güncelleme

rsync’in iki kritik davranışı

  1. Sen ancak neyin farklı olduğunu kopyalarım: Varsayılan olarak fark bulur.
  2. Silme davranışı açıktır: Yanlış parametreyle hedefteki dosyaları silebilirsiniz. Bu yüzden aşağıdaki parametreler dikkatle seçilmelidir.

Kurulum ve temel gereksinimler

İşin büyük kısmı iki uç sistemin (kaynak ve hedef) erişim altyapısında biter.

1) rsync paketi

Çoğu Linux dağıtımında rsync varsayılan olarak bulunur. - Debian/Ubuntu: - sudo apt-get update && sudo apt-get install -y rsync - AlmaLinux/Rocky: - sudo dnf install -y rsync

2) SSH erişimi (güvenli kanal)

rsync’in en yaygın kullanımı SSH üzerinden olur. - Kaynak sunucudan hedefe SSH ile bağlanabildiğinizi test edin: - ssh user@hedef-ip - Parola yerine anahtar (SSH key) kullanın: - Anahtar oluşturma: ssh-keygen -t ed25519 - Anahtarı hedefe ekleme: ssh-copy-id user@hedef-ip

3) Dosya izinleri ve kullanıcı kimliği

Senkron sonrası dosya sahipliği/izinler kritikse şu noktaları netleştirin: - Aynı kullanıcı adı ve UID’ler aynı mı? - Hedefte dizinlerin izinleri senkronu bozuyor mu? - Uygulama servisleri (ör. nginx, php-fpm) bu dosyalara hangi kullanıcıyla erişiyor?

Doğru dizin yapısı: “/” farkı ve en sık hata

rsync’te kaynak dizininde sondaki / işareti çok önemlidir.

  • rsync -a src/ hedef:/var/www/ → src içeriğini www içine kopyalar
  • rsync -a src hedef:/var/www/ → src dizini adıyla birlikte kopyalar (hedefte ekstra bir katman oluşur)

Bu fark, dağıtımlarda sık görülen “dosyalar bir klasör fazla oluştu” problemini çözer ya da tetikler.

Başlangıç için güvenli senkron komutu (dry-run ile)

İlk denemeyi asla körlemesine yapmayın. rsync’in simülasyon modunu kullanın.

Dry-run (değişiklikleri gör)

Aşağıdaki komut sadece ne yapılacağını listeler:

rsync -avz --dry-run --itemize-changes -e ssh /var/www/site/ user@hedef-ip:/var/www/site/
  • -a (archive): izinler, zaman damgaları vb. korur
  • -v (verbose): ayrıntılı rapor
  • -z (compress): ağ üzerinden sıkıştırma
  • --itemize-changes: hangi dosyada ne değiştiyi gösterir
  • -e ssh: SSH kullan

Gerçek senkron

Dry-run doğru görünüyorsa aynısını “dry”sız çalıştırın:

rsync -avz -e ssh /var/www/site/ user@hedef-ip:/var/www/site/

Senkronu “sadece değişenleri” ve doğru şekilde tutmak için parametreler

rsync ile hedefteki durumun nasıl olacağını kontrol eden birkaç parametre var. Net karar için bunları birlikte okuyun.

1) Zaman damgaları ve boyut kontrolü

Varsayılan davranış birçok senaryoda yeterlidir. Ancak çok küçük değişikliklerde hassasiyet gerekebilir. - Zaman damgaları güvenilir mi? - Dosyalar aynı DOSYA SİSTEMİ üzerinde mi oluşturuluyor?

İleri seviye hassasiyet için: - -c ile checksum tabanlı karşılaştırma (daha yavaş olabilir) - İhtiyaç halinde kullanın: büyük veri için her zaman uygun değildir.

2) Silmeyi yönetmek: --delete risk kontrolü

--delete hedefte kaynakta olmayanları silecektir. Bu, “tam ayna” senaryolarında doğru; yanlış kullanılırsa üretimde ciddi veri kaybı doğurur.

Net yaklaşım: - Önce dry-run ile listeleyin - Sonra kısa aralıklarla tekrar çalıştırın ve farkları doğrulayın

Silme kontrollü örnek:

rsync -avz -e ssh --delete --dry-run /var/www/site/ user@hedef-ip:/var/www/site/

Gerçekleştirmeden önce bu komutun çıktısında nelerin silineceğini kontrol edin.

3) Yalnızca belirli dosyaları hariç tutma

Örneğin cache dizinlerini kopyalamak istemezsiniz. Hariç tutma örneği:

rsync -avz --exclude 'cache/' --exclude '*.log' -e ssh /var/www/site/ user@hedef-ip:/var/www/site/

Büyük veri ve performans: ağ + CPU ayarları

Performans genelde iki şeye bağlı olur: veri miktarı ve aktarım hızı.

Compression ne zaman işe yarar?

  • -z sıkıştırma, bant genişliği sınırlıysa fayda sağlar.
  • Dosyalar zaten sıkıştırılmışsa (ör. jpg, mp4) sıkıştırma kazancı düşer.

Net test önerisi: - Aynı senaryoyu -z açık ve kapalı deneyin - Hangi durumda aktarım süresi daha kısa oluyor ölçün

Parçalı/yeniden deneme (resumable) konusu

rsync varsayılan olarak “kesilince devam et” mantığıyla çalışmaz. Bu yüzden büyük transferlerde: - --partial ile kısmi dosyaları koruma - tekrar çalıştırdığınızda zaten kısmen dolu dosyaları yeniden değerlendirme

Örnek:

rsync -avz --partial --progress -e ssh /data/ user@hedef-ip:/data/

Senaryo bazlı net örnekler

Aşağıdaki tabloda, senaryonuza göre komut mantığını hızlıca seçebilirsiniz.

Senaryo Önerilen yaklaşım Kritik parametre
Web dosyalarını yansıt (cache hariç) Dry-run + sonra gerçek rsync --exclude, -a
Hedef dizini kaynakla birebir tut --delete ile tam eşitleme --delete
Sadece yeni/changed dosyaları aktar Varsayılan fark karşılaştırma -a
Büyük veri aktarımı --partial ve ölçümlü deneme --partial, --progress
Dosyalar hassas doğruluk gerektirir checksum ile karşılaştırma -c

1) Web içeriği senkronu (cache hariç)

rsync -avz --exclude 'cache/' --exclude 'tmp/' --exclude '*.log' -e ssh /var/www/site/ user@hedef-ip:/var/www/site/

2) Tam ayna senkron (silme kontrollü)

Önce simülasyon:

rsync -avz --delete --dry-run --itemize-changes -e ssh /var/www/site/ user@hedef-ip:/var/www/site/

Sonra gerçek:

rsync -avz --delete -e ssh /var/www/site/ user@hedef-ip:/var/www/site/

Cron ile otomasyon: saat gibi çalıştırın

Senkronu periyodik yapmak için cron kullanın. Buradaki amaç, aynı komutu aynı hedefe tutarlı biçimde uygulamak.

Örnek (her gece 02:15):

crontab -e

Sonra satır ekleyin:

15 2 * * * rsync -avz --delete -e ssh /var/www/site/ user@hedef-ip:/var/www/site/ >> /var/log/rsync-www.log 2>&1

Cron ile net kontrol

  • Komut çıktısını log dosyasına yönlendirin
  • Log dosyası disk doldurmasın; ayrıca log rotation yapın
  • rsync çıkış kodlarını takip edin (CI gibi düşünün)

Senkronu doğrulama: “doğru mu?” adımları

rsync çalıştıktan sonra doğrulamak için iki katmanlı kontrol uygulayın:

  1. Dosya listesi eşit mi? - Kaynak ve hedefte dosya sayısı/öznitelikleri benziyor mu?

  2. Ölçülebilir tutarlılık - Kritik dosyalar için hash karşılaştırması yapın: - sha256sum çıktısı her iki tarafta aynı mı?

Dosyalar çoksa hash hesaplamak maliyetli olabilir. Bu durumda: - Sadece gerçekten kritik dizinleri hashleyin - Ya da checksum’u rsync seviyesinde -c ile sınırlı veri için kullanın

Hataları azaltmak için güvenlik ve sağlamlık kontrolleri

1) SSH güvenliği

  • Parola oturumunu kapatın (yalnızca anahtar): /etc/ssh/sshd_config → PasswordAuthentication no
  • Kullanıcıyı en az yetkiyle çalıştırın (gereksiz root erişimi kullanmayın)

2) rsync’i doğru kullanıcının çalıştırması

  • Hedefte dosya izinleri uygulama sunucusu kullanıcı adıyla uyumlu olmalı
  • Aksi halde senkron başarılı görünse bile web servisleri okuyamaz

3) “Yanlış dizin” problemine karşı kontrol

  • Komutlarda kaynak ve hedef yollarını net yazın
  • Özellikle --delete kullanmadan önce hedef dizininizin doğru olduğunu doğrulayın

Pratik kontrol listesi (her senkron öncesi)

  • [ ] Kaynak dizininde sondaki / doğru mu?
  • [ ] Önce --dry-run yaptım mı?
  • [ ] Hariç tutmam gereken dizinler/uzantılar var mı?
  • [ ] --delete kullanacak mıyım? Kullanacaksa dry-run çıktısını kontrol ettim mi?
  • [ ] Hedef dizinde izinler ve sahiplik uygulama için uygun mu?
  • [ ] Logları kaydediyor muyum?
  • [ ] Cron periyodu veri büyümesine göre makul mi?

Sonuç: 1 saat içinde doğru kurulum, sonraki senkronlarda risk düşüşü

rsync ile sunucular arası senkronizasyonu doğru parametreler, doğru “/” kullanımı ve özellikle --dry-run kontrolü belirler. İlk adım olarak web içeriği gibi bir dizini hariç tutma ile senkronlayın, ardından gerekirse --delete ile tam eşitlemeye geçin. Hemen şimdi: (1) SSH anahtarını kurun, (2) simülasyonla farkları doğrulayın, (3) loglu cron ile periyodik hale getirin. Böylece hem hız kazanır hem de yanlış silme gibi riskleri sistematik şekilde ortadan kaldırırsınız.

Etiketler: #rsync #vds #vps #hosting #senkronizasyon #ssh #yedekleme

Hosting karşılaştırması yapmaya hazır mısın?

100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.

Hosting Karşılaştır →

İlgili Yazılar

0 ürün seçildi