Ana içeriğe geç

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. 🚀