Skip to main content

Rsync ile Yerel ve Uzak Dizinleri Senkronize Etme: Detaylı Rehber 💾


🎯 Bu Rehberde Ne Öğreneceksiniz

Bu rehberde Rsync adlı güçlü komut satırı aracını kullanarak yerel ve uzak sistemler arasında dosya ve klasörlerin nasıl senkronize edileceğini öğreneceksiniz.
Delta transfer algoritması sayesinde Rsync yalnızca değişen bölümleri kopyalar; bu da hem zamandan hem bant genişliğinden ciddi tasarruf sağlar.
Yedekleme, dizin aynalama (mirroring) ve otomatikleştirilmiş görevler için güvenli bir yapı oluşturmayı adım adım göreceksiniz.


🧠 Aşama 1 – İçerik Özeti

Ana Teknik Konu: Rsync (Remote Sync) komut satırı aracı.
Amaç: Dosyaları yerel ve uzak sistemler arasında hızlı, verimli ve güvenli şekilde senkronize etmek.
Öne Çıkan Özellikler:

  • Sadece değişen blokları transfer eden delta algoritması
  • SSH ile güvenli aktarım
  • Otomatikleştirme (cron)
  • --dry-run ile güvenli test, --delete ile aynalama

Kısa Özet:
Linux tabanlı sistemlerde Rsync kullanarak dosya senkronizasyonu, yedekleme ve otomatik görev yönetimi işlemleri gerçekleştirilir.
Bu rehber, hem yeni başlayanlar hem sistem yöneticileri için optimize edilmiştir.


⚙️ Rsync Kurulumu ve Gereksinimler

Rsync, çoğu Linux dağıtımında ön yüklü gelir. Eğer yüklü değilse:

sudo apt install rsync

Gereksinimler:

1 yerel sistem (çalışma ortamı)

1 uzak sunucu (örneğin Rabisu Cloud üzerindeki tr1-node01)

Her iki tarafta da Rsync ve SSH aktif olmalı

Şifresiz SSH anahtar kimlik doğrulaması yapılmalı


🧩 1. Rsync Sözdizimini Anlamak

Rsync’in temel komut yapısı diğer araçlara (ssh, scp, cp) benzer:


rsync [bayraklar] kaynak hedef

Örnek ortam oluşturma:


cd ~
mkdir dir1 dir2
touch dir1/dosya{1..100}
Arşiv Modu (-a)
Rsync’te en çok önerilen bayrak -a (archive)’dır.

Bu mod, dosyaları özyinelemeli kopyalar ve izin, sahiplik, zaman damgası gibi meta verileri korur.


rsync -a dir1/ dir2

📝 Açıklama: dir1/ yalnızca içeriği taşır, dir1 ise dizinin kendisini taşır.

Bu fark (trailing slash) dosya yapısının hedefte nasıl oluşacağını belirler.


🧪 2. Komutları Önce Test Edin (--dry-run)

Rsync komutlarını gerçek çalıştırmadan önce simüle etmek için --dry-run veya -n kullanın.


rsync -anv dir1/ dir2

🧠 Neden önemli?

--delete gibi silme işlemleri öncesinde test yapmanızı sağlar.

Dosyaların nasıl kopyalanacağını değişiklik yapmadan gösterir.


🌐 3. Uzak Sunucu İşlemleri (Push & Pull)

Push: Yerelden Uzağa Aktarma


rsync -a ~/dir1 rabisu@tr1-node01:~/yedekler

💡 Sonuç: Uzak sunucuda ~/yedekler/dir1/ dizini oluşur.

Pull: Uzaktan Yerel Ortama Aktarma


rsync -a rabisu@tr1-node01:/var/log/nginx/ ~/yedekler/nginx-log

💡 Sonuç: Sunucudaki dosyalar yerel dizine güvenli şekilde kopyalanır.


⚡ 4. Performansı Artırma

Büyük verilerde aktarımı hızlandırmak için:


rsync -azP kaynak hedef

-z: Sıkıştırma aktif eder (özellikle metin dosyalarında etkili)

-P: Aktarım ilerlemesini gösterir ve kesintide devam eder


🧹 5. Aynalama (--delete)

Kaynakta olmayan dosyaları hedeften kaldırmak için:


rsync -a --delete kaynak/ hedef/

⚠️ Uyarı: Bu komut kalıcı silme yapar. Önce --dry-run ile test edin.


🚫 6. Hariç Tutma (--exclude)

Belirli dizin veya dosyaları kopyalama dışı bırakmak için:


rsync -av --exclude='node_modules/' --exclude='*.tmp' proje/ yedek/

Ya da hariç tutulacak öğeleri bir dosyadan okuyabilirsiniz:


rsync -av --exclude-from='exclude.txt' kaynak/ hedef/

💾 7. Yedekleme (--backup)

Güncellenen veya silinen dosyaların eski sürümlerini saklamak için:


rsync -a --delete --backup --backup-dir=/yedek/arsiv/ /kaynak/ /hedef/

⏰ 8. Cron ile Otomatik Rsync

Düzenli yedeklemeler için cron görevine Rsync komutu ekleyin:


crontab -e

Her gün 03:00’te çalışacak örnek cron satırı:


0 3 * * * /usr/bin/rsync -a --delete /var/www/rabisu.cloud/ rabisu@tr1-node01:/srv/yedekler/rabisu-web/ > /dev/null 2>&1

💡 İpucu:

Tam yolları kullanın (/usr/bin/rsync)

Şifresiz SSH bağlantısı ayarlayın

Çıktıları log dosyasına yönlendirin


💡 Sıkça Sorulan Sorular (SSS)

1. Rsync neden scp’den daha hızlıdır?

Çünkü Rsync, delta algoritmasıyla sadece değişen bölümleri kopyalar. scp ise dosyanın tamamını her seferinde gönderir.

2. Dizin mi yoksa içeriği mi kopyalanır?

Sonundaki eğik çizgi / varsa sadece içerik kopyalanır, yoksa dizin dahil edilir.

3. Yanlışlıkla dosya silmeyi nasıl engellerim?

Komutu önce --dry-run ile çalıştırarak olası işlemleri simüle edin.

4. İzin hatası neden oluşur?

Genellikle hedef dizinde yazma veya kaynakta okuma izni yoktur. -a bayrağını kullanın.

5. Eski dosyaları nasıl saklarım?

--backup ve --backup-dir parametreleriyle eski sürümleri ayrı klasöre taşıyın.


🚀 Sonuç

Rsync; verimli senkronizasyon, güvenli yedekleme ve otomatik görev planlama konularında en güçlü araçlardan biridir. Artık verilerinizi kolayca aynalayabilir, --dry-run ile hatasız testler yapabilir ve cron ile tamamen otomatik hale getirebilirsiniz.

💡 Rabisu Cloud altyapısında Rsync senkronizasyonunu anında deneyin — güvenli, hızlı ve zahmetsiz bir yedekleme deneyimi için. 🚀