Rsync Nedir ve Neden Tercih Edilmeli?

Rsync, dosya ve dizinleri bir kaynak ile hedef arasında senkronize eden açık kaynaklı bir komut satırı aracıdır. Delta transfer algoritması sayesinde yalnızca değişen blokları gönderir; bu da veri aktarımını %70’e varan oranlarda hızlandırır. Özellikle VDS sunucu paketleri ve fiziksel sunucu (dedicated server) ortamlarında, yüksek bant genişliği maliyetlerini düşürmek ve yedekleme süresini kısaltmak için ideal bir çözümdür.
Rsync’in en büyük avantajı, hem yerel hem de uzak sistemlerde çalışabilmesidir. SSH protokolü üzerinden şifreli bir bağlantı kurarak veri güvenliğini sağlarken, aynı zamanda --delete gibi parametrelerle hedefteki gereksiz dosyaları otomatik olarak temizleyebilir. Bu özellik, yedekleme politikalarının tutarlılığını korur ve depolama alanı israfını önler.
Rsync’in Temel Çalışma Prensibi ve Sık Yapılan Hatalar
Rsync, iki temel modda çalışır: push (kaynak sunucudan hedefe veri gönderme) ve pull (hedef sunucudan kaynak veriyi çekme). Çoğu kullanıcı, sadece push modunu tercih ederken, pull modunu göz ardı eder ve bu durum yedekleme planında tek nokta hatasına yol açar. Örneğin, bir VDS sunucusundaki kritik dosyalar birden fazla lokasyona dağıtılacaksa, pull modunu da kullanmak veri bütünlüğünü artırır.
En yaygın hatalardan biri, -a (archive) parametresinin eksik kullanılmasıdır. -a parametresi, izinler, zaman damgaları ve sembolik linkler gibi meta verileri korur. Bu parametre olmadan yapılan yedeklemeler, özellikle WordPress hosting ortamlarında, dosya izinlerinin bozulmasına ve site çökmesine neden olabilir. Ayrıca, --exclude ile gereksiz dosyaların dışlanması unutulursa, yedekleme süresi ve depolama maliyeti artar.
Rsync ile Adım Adım Yedekleme Nasıl Yapılır?
- Rsync’i Kurun: Çoğu Linux dağıtımında
sudo apt-get install rsync(Debian/Ubuntu) veyayum install rsync(CentOS) komutlarıyla kurulum tamamlanır. - SSH Anahtar Çifti Oluşturun: Uzak sunucuya şifresiz bağlanmak için
ssh-keygen -t rsa -b 4096ile bir anahtar çifti oluşturun vessh-copy-id user@hedef_ipile hedefe ekleyin. - Yedekleme Scripti Yazın: Aşağıdaki örnek script, /var/www dizinini /backup/ dizinine senkronize eder ve log tutar:
#!/bin/bash
SRC="/var/www/"
DEST="user@192.168.10.20:/backup/www/"
LOG="/var/log/rsync_backup.log"
rsync -avz --delete --exclude='*.log' $SRC $DEST &>> $LOG
if [ $? -eq 0 ]; then
echo "$(date): Yedekleme başarılı" >> $LOG
else
echo "$(date): Yedekleme hatası" >> $LOG
fi
Bu script’i crontab -e ile günlük 02:00'de çalışacak şekilde zamanlayabilirsiniz:
0 2 * * * /usr/local/bin/rsync_backup.sh
Script içinde --exclude parametresiyle geçici dosyalar dışlanır, --delete ile hedefteki eski dosyalar temizlenir. Böylece yedekleme seti her zaman güncel kalır.
Rsync ve Diğer Yedekleme Çözümlerinin Karşılaştırması

| Özellik | Rsync | Rclone | Duplicity |
|---|---|---|---|
| Protokol Desteği | SSH, RSH, daemon | Google Drive, S3, Azure | SSH, SFTP, local |
| Delta Transfer | Var | Var | Var |
| Şifreleme | SSH üzerinden | GPG | GPG |
| Incremental Yedekleme | Manuel (rsync -a) | Otomatik | Otomatik |
| Performans | Yüksek, düşük CPU | Orta, bulut gecikmesi | Düşük, sıkıştırma |
| Kurulum Kolaylığı | Basit | Orta | Karmaşık |
Tablodan da görüleceği gibi, rsync özellikle AMD Ryzen VDS sunucular gibi yüksek performanslı ortamlarda en düşük kaynak tüketimiyle çalışır. Bulut tabanlı çözümler tercih edilse bile, rsync’in yerel ağlarda sağladığı hız farkı göz ardı edilemez.
Gerçek Dünya Senaryosu: E‑ticaret Sitesi Yedekleme Stratejisi
Bir e-ticaret hosting hizmeti sunan bir firma, günlük veri artışı %15 ve ortalama veri boyutu 200 GB civarında. Bu durumda, tam yedekleme yerine artımlı (incremental) yedekleme stratejisi uygulanmalıdır. Aşağıdaki adımlar izlenir:
- Haftalık tam yedekleme:
rsync -a --delete /var/www/ user@backup1:/full_backup/ - Günlük artımlı yedekleme:
rsync -a --link-dest=/full_backup/ /var/www/ user@backup2:/incremental/$(date +%Y-%m-%d)/ - Yedekleme doğrulama:
rsync -avnc /var/www/ user@backup2:/incremental/$(date +%Y-%m-%d)/komutu ile farklar raporlanır.
Bu senaryoda, artımlı yedekleme sayesinde ağ trafiği %80 azalır, depolama maliyeti ise %60 düşer. Ayrıca, bir felaket anında sadece son artımlı yedeklemeyi geri yükleyerek iş sürekliliği sağlanır.
Rsync Kullanırken Güvenlik ve Performans İpuçları
Rsync’in güvenliği, SSH üzerinden sağlanır; bu yüzden güçlü SSH anahtarları ve kısıtlı kullanıcı izinleri kullanılmalıdır. /etc/ssh/sshd_config dosyasında PermitRootLogin no ve AllowUsers backupuser ayarları, yetkisiz erişimi engeller. Ayrıca, --compress (-z) parametresi veri sıkıştırması yapar ve düşük bant genişliğinde bile hızlı aktarım sağlar.
Performans artırmak için --inplace ve --partial seçenekleri tercih edilebilir. --inplace, hedef dosyanın üzerine doğrudan yazarak ekstra disk I/O’yu azaltır; --partial ise kesintili bir aktarımda dosyanın kalan kısmını tamamlamaya yarar. Özellikle colocation hizmeti kullanan firmalar, veri merkezleri arasındaki uzun hatlarda bu seçeneklerden büyük fayda sağlar.
Sıkça Sorulan Sorular
Rsync ile Windows sunucularını da senkronize edebilir miyim?
Evet. Cygwin veya WSL (Windows Subsystem for Linux) üzerinden rsync kurulumu yapılabilir. Ayrıca, Intel i9 VDS sunucular gibi yüksek performanslı ortamlar, Windows tarafında da SSH sunucusu kurularak sorunsuz bir entegrasyon sağlar.
Rsync’in --delete parametresi veri kaybına yol açar mı?
--delete sadece hedefteki, kaynakta bulunmayan dosyaları siler. Yanlış yapılandırma durumunda veri kaybı yaşanabilir; bu yüzden önce --dry-run (-n) ile testi yapmak önerilir.
Rsync ile sıkıştırma (compression) ne kadar etkili?
-z seçeneği veri sıkıştırması yapar ve özellikle metin dosyaları, loglar ve kod dosyalarında %60’a varan transfer hızı artışı sağlar. Ancak, zaten sıkıştırılmış video veya zip dosyalarında etkisi sınırlıdır.
Rsync’i birden fazla hedefe aynı anda gönderebilir miyim?
Tek bir rsync komutu birden fazla hedefe gönderemez, fakat bir bash döngüsüyle hedef listesi üzerinden ardışık olarak çalıştırabilirsiniz. Örneğin, for host in srv1 srv2 srv3; do rsync -avz $SRC user@$host:$DEST; done şeklinde bir script yeterlidir.
Sonuç ve Bir Sonraki Adım
Rsync, düşük kaynak tüketimi, yüksek güvenlik ve esnek yapılandırma seçenekleriyle veri yedekleme dünyasında vazgeçilmez bir araçtır. Özellikle SEO hosting ve bayi (reseller) hosting gibi yoğun veri trafiğine sahip hizmetlerde, rsync’in delta transfer özelliği maliyetleri büyük ölçüde azaltır. Şimdi, yukarıdaki adımları izleyerek kendi yedekleme script’inizi oluşturun, test ortamında --dry-run ile doğrulama yapın ve üretim ortamına geçiş için cron zamanlayıcısını aktive edin. Böylece veri kaybı riskini en aza indirirken, yedekleme sürecinizi otomatik ve güvenli hâle getirmiş olacaksınız.