İçeriğe geç

Rsync Kullanımı: Dosya ve Dizin Senkronizasyonunun Gücü

rsync-kullanim

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üzenlesudo apt update && sudo apt install rsync -y
  • CentOS/RHEL:bashKopyalaDüzenlesudo yum install rsync -y
  • Arch Linux:bashKopyalaDüzenlesudo 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:

ParametreAçıklama
-aArşiv modu: Simge bağlantıları, dosya izinleri, zaman damgaları ve sahiplik bilgilerini korur.
-vAyrıntılı çıktı (verbose): İşlem sırasında detaylı bilgi görüntüler.
-zSı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.
--deleteHedefte bulunmayan dosyaları siler (Kaynakta silinenleri eşitler).
--excludeBelirtilen 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üzenlersync -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üzenlersync -avz --info=progress2 /kaynak/ /hedef/
  • Dosyaları önceden sıkıştırarak göndermek:bashKopyalaDüzenlersync -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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

− 2 = 5