Linux için Rsync: dosyaları senkronize edin, kopyalayın ve yedekleyin

9 dakikalık okuma - 24 Mayıs 2025

hero section cover
İçindekiler
  • Linux için Rsync: dosyaları bir profesyonel gibi senkronize etme, kopyalama ve yedekleme
  • rsync nedir?
  • Neden cp veya scp yerine rsync kullanılmalı
  • Yaygın rsync bayrakları
  • Rsync örnekleri
  • Cron ile rsync'i otomatikleştirme
  • Son düşünceler
Paylaş

Artımlı aktarımlar, SSH üzerinden uzaktan senkronizasyonlar, cron ile zamanlanmış yedeklemeler ve iz bırakan eğik çizgi tuzağından kaçınmak için Linux'ta rsync nasıl kullanılır?

Linux için Rsync: dosyaları bir profesyonel gibi senkronize etme, kopyalama ve yedekleme

Rsync, Linux sistemleri arasında dosya kopyalamak için kullanılan standart araçtır. cp veya scp 'den daha hızlıdır, ağ kesintilerinden sonra toparlanır ve yalnızca gerçekten değişenleri aktarır. Bu yazı, rsync'in ne yaptığını, bilinmesi gereken bayrakları, en sık kullanacağınız örnekleri ve cron ile nasıl zamanlayacağınızı ele almaktadır.


 

rsync nedir?

Rsync, konumlar arasında dosya kopyalamak ve senkronize etmek için kullanılan bir komut satırı yardımcı programıdır. Yerel olarak, SSH üzerinden uzak bir ana bilgisayara veya bir rsync arka plan programına karşı çalışır. cp veya scp: rsync önce kaynak ve hedefi karşılaştırır, ardından yalnızca farklılıkları aktarır. 200 MB'lık bir değişiklik bulunan 100 GB'lık bir dizinde, rsync 200 MB'lık kısmı taşır. cp ve scp hepsini taşır.

Her modern Linux dağıtımında bulunur. Eğer yoksa: apt install rsync veya dnf install rsync.

Neden cp veya scp yerine rsync kullanılmalı

rsync'in önemsiz olmayan kopyalama işlemlerinde tercih edilmesinin üç nedeni:

  • Artımlıdır. Sonraki çalıştırmalarda, dosyaların tamamı değil, yalnızca değiştirilen baytlar aktarılır. Yedeklemeler ve aynalamalar için bu, bir gecede tamamlanan bir işi birkaç dakikaya indirger.
  • Kesintilere dayanıklıdır. --partial, aktarımı yarıda kalan 50 GB'lık bir dosya, baştan başlamak yerine kaldığı yerden devam eder.
  • Meta verileri korur. Arşiv modu (-a) izinleri, sahipliği, sembolik bağlantıları ve zaman damgalarını korur. Sistem dosyaları, kaynak ağaçları ve özniteliklerin önemli olduğu her şey için hayati önem taşır.

Küçük dosyaların tek seferlik kopyaları için scp uygun bir seçenektir. Tekrarlanan, bant genişliği gerektiren veya devam ettirmeniz gerekebilecek işlemler için rsync'i kullanın.

Yaygın rsync bayrakları

Gerçekten kullanacağınız bayraklar:

BayrakNe yapar
-aArşiv modu. İzinleri, sahipliği, sembolik bağlantıları ve zaman damgalarını korur. Şuna eşdeğerdir -rlptgoD.
-vVerbose ile eşdeğerdir. Aktarılan dosyaları listeler.
-zAktarım sırasında sıkıştır. Yavaş veya pahalı bağlantılarda kullanışlıdır, LAN'da veya zaten sıkıştırılmış içerik için daha az kullanışlıdır.
-PBirleştir --partial ve --progress'i birleştirir. Kesintiye uğrayan aktarımları devam ettirir, canlı ilerlemeyi gösterir.
--deleteKaynakta bulunmayan dosyaları hedefte sil. Gerçek bir yansıma için gereklidir.
--excludeBir desene uyan dosyaları atlar.
--exclude-from=FILEBir dosyadan hariç tutma kalıplarını okur. Birçok --exclude bayrağı zincirleme kullanmaktan daha temizdir.
--dry-runHiçbir şey aktarılmadığında ne olacağını gösterin.
--bwlimit=KBPSBant genişliği kullanımını saniye başına kilobayt cinsinden sınırlayın. Çalışma saatleri içinde çalışan yedeklemeler için kullanışlıdır.
--checksumDosyaları boyut ve değiştirilme zamanı yerine sağlama toplamı ile karşılaştırın. Daha yavaştır ancak istisnai durumları yakalar.
-e sshAktarım için SSH kullanın. Çoğu modern kurulumda varsayılan olarak kullanılır.

Varsayılan davranış, dosya boyutunu ve değiştirilme zamanını karşılaştırır; bu hızlıdır ve neredeyse her zaman doğrudur. --checksum 'e geçin.

Rsync örnekleri

Bir dizini yerel olarak kopyalayın:

rsync -av /source/path/ /destination/path/

SSH üzerinden uzak bir sunucuya senkronize etme:

rsync -avz /local/dir/ user@remote:/remote/dir/

Yıkıcı bir işlem yapmadan önce deneme yapın:

rsync -avz --dry-run /local/dir/ user@remote:/dir/

Hedef konumdaki silme işlemleri dahil olmak üzere iki dizini yansıtın:

rsync -av --delete /source/ /destination/

Günlükleri ve geçici dizini hariç tutma:

rsync -av --exclude='*.log' --exclude='tmp/' /src/ /dest/

Kesintiye uğrayabilecek büyük bir aktarımı devam ettirin:

rsync -avP user@remote:/backups/big.img /local/

SSH oturumu kesilirse, aynı komutu tekrar çalıştırın. -P, rsync sıfırdan başlamak yerine kaldığı yerden devam eder.

Yoğun olmayan saatlerde yedekleme için bant genişliğini 50 MB/s ile sınırlayın, böylece yukarı bağlantı doymaz:

rsync -avz --bwlimit=50000 /local/dir/ user@remote:/dir/

Sonundaki eğik çizgi tuzağı

En yaygın rsync hatası:

rsync -av /source  /destination/    # copies the 'source' directory INTO /destination
rsync -av /source/ /destination/    # copies the CONTENTS of /source into /destination

Kaynakta sondaki eğik çizgi, "bu dizinin içindeki her şey" anlamına gelir. Sondaki eğik çizgi yoksa, "bu dizinin kendisi" anlamına gelir. Emin değilseniz, özellikle --dry-run ile çalıştırın, özellikle de --delete.

Cron ile rsync'i otomatikleştirme

Zamanlanmış yedeklemeler için üç şeye ihtiyacınız vardır:

  1. Hedefe şifresiz SSH erişimi. Cron işleri şifre giremez. Bir anahtar oluşturun ve bunu yedekleme sunucusuna kopyalayın:

    ssh-keygen -t ed25519
    ssh-copy-id user@backup-host
  2. Crontab'da tek satırlık bir komut değil, bir komut dosyası. Test etmesi ve günlüğe kaydetmesi daha kolaydır:

    #!/bin/bash
    LOG=/var/log/rsync-backup.log
    rsync -az --delete /etc/ user@backup:/backups/$(hostname)/etc/ >> "$LOG" 2>&1

    Bunu chmod +x.

  3. Çalıştırmak için bir cron girişi. Şu komutla düzenleyin crontab -e:

    0 2 * * * /usr/local/bin/rsync-backup.sh

    Bu, komut dosyasını her gece 02:00'da çalıştırır.

Üretimde yapılmaya değer iki iyileştirme: komut dosyasını flock içine sarın, böylece uzun süren bir iş bir sonraki gecenin çalışmasıyla çakışmaz ve çıktıyı logger böylece hatalar, izleme sisteminin algılayabileceği sistem günlüğüne kaydedilsin.

Son düşünceler

Rsync, bayrakları öğrenmek için harcanan zamanın neredeyse anında karşılığını veren birkaç Linux aracından biridir. Ana noktalar:

  • Artımlı aktarımlar ve devam ettirme desteği, rsync'i birden fazla kez çalıştırdığınız her şey için doğru seçim haline getirir
  • -a arşiv modu için, -z sıkıştırma için, -P devam ettirme ve ilerleme için, --delete gerçek aynalar için
  • Kaynak yolundaki son eğik çizgiye dikkat edin, özellikle --delete
  • Otomatik zamanlanmış yedeklemeler için cron ve SSH anahtarlarıyla birlikte kullanın

Tesisler arasında veri aktaran büyük yedekleme işleri için, sınırsız bant genişliğine sahip bir VPS üzerinde rsync çalıştırmak, yedekleme pencerelerinin aktarım sınırlamalarıyla kısıtlanmayacağı anlamına gelir.

Blog

Bu hafta öne çıkanlar

Daha fazla makale
Dijital göz yorgunluğu: Ekranların yoğun olarak kullanıldığı bir dünyada görme yeteneğinizi nasıl koruyabilirsiniz?

Dijital göz yorgunluğu: Ekranların yoğun olarak kullanıldığı bir dünyada görme yeteneğinizi nasıl koruyabilirsiniz?

Bütün gün ekrana mı bakıyorsunuz? Kanıtlanmış teknikler ve araçlarla dijital göz yorgunluğunu nasıl azaltabileceğinizi öğrenin. Bu kılavuz, uzaktan çalışanlar, yazılım geliştiriciler ve teknoloji sektöründe çalışan herkes için vazgeçilmezdir.

4 dakikalık okuma - 21 Mayıs 2025

Güçlü ve sınırsız bir VPS'ye sahip olmanın önemi

8 dakikalık okuma - 9 Mayıs 2025

Daha fazla makale
background image

Sorularınız mı var veya özel bir çözüme mi ihtiyacınız var?

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım

icon

Esnek seçenekler

icon

Küresel erişim

icon

Anında dağıtım