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ı:
-a
→ Arşiv modu (izinler, zaman damgası ve sembolik linkler korunur)-v
→ Detaylı çı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:
-z
→ Veriyi sıkıştırarak transfer hızını artırır.-e ssh
→ Bağ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