Rsync (Remote Sync), Linux ve Unix tabanlı sistemlerde dosya ve dizinleri hızlı ve verimli bir şekilde senkronize etmek için kullanılan güçlü bir araçtır. Ağ üzerinden veya yerel sistem içinde veri senkronizasyonu yaparak, yedekleme ve veri taşıma işlemlerini kolaylaştırır.
Bu rehberde rsync komutunun kullanımı, temel ve ileri seviye seçenekleri, pratik senaryolar ve sık kullanılan parametreler hakkında detaylı bilgi bulabilirsiniz.
1. Rsync Nedir?
Rsync, veri senkronizasyonu ve yedekleme işlemleri için kullanılan, hızlı, güvenli ve verimli bir dosya transfer aracıdır. Öne çıkan özellikleri şunlardır:
- Delta Transfer Algoritması: Yalnızca değişen bölümleri senkronize eder.
- SSH Desteği: Güvenli bağlantılarla veri aktarımı sağlar.
- Dosya ve Dizin Haklarını Koruma: Sahiplik, izinler ve zaman damgalarını saklayabilir.
- Bant Genişliği Optimizasyonu: Sıkıştırma ve kısmi transfer desteği sunar.
2. Rsync Kurulumu
Çoğu Linux dağıtımında rsync önceden yüklü gelir. Eğer sisteminizde yoksa, aşağıdaki komutlarla yükleyebilirsiniz:
- Debian/Ubuntu:bashKopyalaDüzenle
sudo apt update && sudo apt install rsync -y
- CentOS/RHEL:bashKopyalaDüzenle
sudo yum install rsync -y
- Arch Linux:bashKopyalaDüzenle
sudo pacman -S rsync
Yükleme sonrası, aşağıdaki komutla kurulumun doğruluğunu kontrol edebilirsiniz:
rsync --version
3. Rsync Temel Kullanımı
Rsync komutunun temel sözdizimi şöyledir:
rsync [seçenekler] kaynak hedef
Yerel senkronizasyon örneği:
rsync -av /kaynak/dizin/ /hedef/dizin/
Bu komut /kaynak/dizin/ içindeki tüm dosya ve dizinleri /hedef/dizin/ içine kopyalar.
Uzak sunucuya senkronizasyon (SSH ile):
rsync -avz /kaynak/dizin/ kullanıcı@sunucu:/hedef/dizin/
Uzak sunucudan yerel dizine senkronizasyon:
rsync -avz kullanıcı@sunucu:/kaynak/dizin/ /hedef/dizin/
4. Rsync Kullanımında Önemli Parametreler
Rsync komutunda sık kullanılan parametreler şunlardır:
Parametre | Açıklama |
---|---|
-a | Arşiv modu: Simge bağlantıları, dosya izinleri, zaman damgaları ve sahiplik bilgilerini korur. |
-v | Ayrıntılı çıktı (verbose): İşlem sırasında detaylı bilgi görüntüler. |
-z | Sıkıştırma (compression): Veri aktarımını sıkıştırarak hızlandırır. |
-P | İlerleme çubuğu ve kaldığı yerden devam etme |
-e "ssh" | SSH üzerinden güvenli bağlantı sağlar. |
--delete | Hedefte bulunmayan dosyaları siler (Kaynakta silinenleri eşitler). |
--exclude | Belirtilen dosya veya dizinleri hariç tutar. |
Örnek Kullanımlar
1. Dosyaları SSH ile uzak sunucuya göndermek:
rsync -avz -e "ssh" /yerel/dizin/ kullanıcı@sunucu:/uzak/dizin/
2. Hedefte olmayan dosyaları silerek birebir eşitleme yapmak:
rsync -av --delete /kaynak/dizin/ /hedef/dizin/
3. Belirli dosya ve dizinleri hariç tutmak:
rsync -av --exclude='*.log' --exclude='gecici/' /kaynak/dizin/ /hedef/dizin/
4. Kaldığı yerden devam ederek büyük bir dosyayı senkronize etmek:
rsync -avP /kaynak/dizin/ /hedef/dizin/
5. Rsync ile Yedekleme Stratejileri
Rsync, yedekleme işlemleri için oldukça kullanışlıdır. İşte bazı yaygın yedekleme stratejileri:
a) Günlük Yedekleme (Cron ile Otomatik Rsync)
Aşağıdaki cron job, her gece saat 02:00’de /veriler klasörünü /yedek klasörüne yedekler:
0 2 * * * rsync -av --delete /veriler/ /yedek/
b) Uzak Sunucuya Yedekleme
Sunucudaki verileri başka bir makineye düzenli yedeklemek için:
rsync -avz --delete -e "ssh" /veriler/ kullanıcı@yedekleme-sunucusu:/yedek/veriler/
c) Artımlı Yedekleme (Incremental Backup)
Her çalıştırmada sadece değişen dosyaları kaydetmek için:
rsync -av --link-dest=/yedek/en-son /veriler/ /yedek/yeni-yedek-$(date +%F)/
6. Rsync Performans Optimizasyonu
Büyük veri transferlerinde rsync’i hızlandırmak için aşağıdaki yöntemleri kullanabilirsiniz:
- SSH şifrelemesini optimize etmek:bashKopyalaDüzenle
rsync -avz -e "ssh -c aes128-ctr" /kaynak/ kullanıcı@sunucu:/hedef/
- Çoklu iş parçacığı kullanımı (rsync varsayılan olarak tek iş parçacıklı çalışır):bashKopyalaDüzenle
rsync -avz --info=progress2 /kaynak/ /hedef/
- Dosyaları önceden sıkıştırarak göndermek:bashKopyalaDüzenle
rsync -avz --compress-level=9 /kaynak/ /hedef/
Sonuç
Rsync, Linux sistemlerinde yedekleme, senkronizasyon ve veri taşıma için vazgeçilmez bir araçtır. Güvenli, hızlı ve esnek olması sayesinde hem yerel hem de uzak sunucular arasında veri aktarımında yaygın olarak kullanılır.
Bu rehberde temel rsync kullanımı, sık kullanılan parametreler, yedekleme stratejileri ve performans optimizasyonu hakkında kapsamlı bilgiler sunduk. İleri seviye senaryolar için rsync’in man rsync
komutu ile belgelerini inceleyebilir veya daha karmaşık rsync betikleri oluşturabilirsiniz.