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