Linux’ta rsync ile Veri Senkronizasyonu ve Yedekleme

Linux’ta rsync ile Veri Senkronizasyonu ve Yedekleme

Linux sistemlerinde veri yedekleme ve senkronizasyon işlemleri için rsync en etkili araçlardan biridir.

Hızlı, güvenli ve verimli bir şekilde dosya transferi yapabilen rsync, hem yerel hem de uzak sunucular arasında veri aktarımını kolaylaştırır. Bu yazıda, rsync komutunun temel kullanımını, yedekleme stratejilerini ve otomatik yedekleme yöntemlerini anlatacağım.


1. rsync Nedir ve Neden Kullanılır?

rsync (remote sync), iki konum arasında hızlı ve verimli dosya senkronizasyonu sağlayan bir Linux aracıdır. Dosya değişikliklerini algılar ve yalnızca değişen bölümleri aktarır, böylece bant genişliği ve işlem süresi tasarrufu sağlar.

rsync Kullanım Alanları

Yerel ve uzak sunucular arasında dosya senkronizasyonu
Günlük, haftalık veya belirli aralıklarla otomatik yedekleme
Büyük veri transferlerini optimize etme
Sistem ve proje dosyalarının güvenli yedeğini alma


2. rsync ile Temel Dosya ve Dizin Senkronizasyonu

1️⃣ Yerel Dizin Senkronizasyonu

📌 Bir dizini aynı makinede farklı bir konuma kopyalamak:

rsync -av /kaynak_klasor/ /hedef_klasor/

Bu komut, /kaynak_klasor/ içeriğini /hedef_klasor/ içerisine kopyalar.

Parametre Açıklamaları:

  • -aArşiv modu (izinler, zaman damgası ve sembolik linkler korunur)
  • -vDetaylı çıktı verir

📌 Sadece değişen dosyaları senkronize etmek için:

rsync -avu /kaynak_klasor/ /hedef_klasor/

Bu yöntem, değişen dosyaları algılayarak verimli bir şekilde senkronizasyon yapar.

2️⃣ Uzak Sunucuya Dosya Senkronizasyonu

📌 Bir sunucudan başka bir sunucuya dosya transferi yapmak için:

rsync -avz /kaynak_klasor/ kullanıcı@hedef_sunucu:/yedek_klasor/

Bu komut, uzak sunucudaki dizine dosyaları senkronize eder.

Ek Parametreler:

  • -zVeriyi sıkıştırarak transfer hızını artırır.
  • -e sshBağlantıyı SSH üzerinden güvenli hale getirir.

📌 SSH Anahtar Kimlik Doğrulaması ile şifresiz rsync kullanımı:

rsync -avz -e "ssh -i /home/kullanici/.ssh/id_rsa" /kaynak_klasor/ kullanıcı@hedef_sunucu:/yedek_klasor/

Bu yöntem, oturum açma sürecini otomatikleştirir ve güvenliği artırır.


3. rsync ile Otomatik Yedekleme (Crontab Entegrasyonu)

Otomatik yedekleme için rsync ile crontab kullanabilirsiniz.

1️⃣ Günlük Otomatik Yedekleme

📌 Her gece saat 02:00’de /var/www/html dizinini yedeklemek için:

0 2 * * * rsync -avz /var/www/html/ yedekleme_kullanici@sunucu:/backup/html/

Bu görev, belirlenen saatte otomatik olarak çalışacaktır.

2️⃣ Haftalık Belirli Bir Klasörü Yedekleme

📌 Her hafta Pazar günü gece 01:00’de /home/kullanici dizinini yedeklemek için:

0 1 * * 0 rsync -avz /home/kullanici/ backup@sunucu:/backup/home/

Bu komut, her hafta Pazar günü gece 01:00’de belirtilen dizini yedekleyecektir.


4. rsync Kullanımında Güvenlik ve Optimizasyon

1️⃣ Veri Transferini Şifrelemek

Rsync transferlerini güvenli hale getirmek için SSH üzerinden transfer yapmak gerekir:

rsync -avz -e ssh /kaynak/ kullanıcı@sunucu:/hedef/

Bu yöntem, dosya transferini şifreleyerek güvenliği artırır.

2️⃣ Büyük Veri Transferlerinde Optimizasyon

📌 Sadece yeni veya değişen dosyaları göndermek için:

rsync -avz --progress --ignore-existing /kaynak/ kullanıcı@sunucu:/hedef/

Bu komut, mevcut dosyaları atlayarak işlem süresini kısaltır.

3️⃣ Silinen Dosyaları Senkronize Etmek

📌 Kaynakta silinen dosyaları hedefte de silmek için:

rsync -avz --delete /kaynak/ kullanıcı@sunucu:/hedef/

Bu yöntem, kaynakta silinen dosyaların hedefte de silinmesini sağlar.


5. Örnek Kullanım Senaryoları

Kullanım Senaryosu Komut
Yerel dizin yedekleme rsync -av /home/kullanici/ /backup/
Uzak sunucuya SSH ile yedekleme rsync -avz -e ssh /data/ backup@remote:/backup/
Günlük otomatik yedekleme 0 2 * * * rsync -av /home/ backup@server:/backup/
Büyük veri transferi optimizasyonu rsync -avz --progress --ignore-existing /source/ /dest/
Senkronize dosya silme rsync -avz --delete /source/ /dest/

 

Yorum gönder

This site uses Akismet to reduce spam. Learn how your comment data is processed.