Android

Yerel ve uzak veri aktarımı ve senkronizasyonu için rsync nasıl kullanılır

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely

İçindekiler:

Anonim

Rsync, dosyaları ve klasörleri uzak bir kabukta veya uzak Rsync arka plan programından iki konum arasında iki konum arasında eşitleyen hızlı ve çok yönlü bir komut satırı yardımcı programıdır. Yalnızca kaynak ve hedef arasındaki farkları aktararak hızlı artımlı dosya aktarımı sağlar.

Rsync, verileri yansıtmak, artımlı yedeklemeler, sistemler arasında dosya kopyalamak ve günlük kullanım için scp , sftp ve cp komutlarının yerine kullanılabilir.

Bu öğreticide, rsync pratik örnekler ve en yaygın rsync seçeneklerinin ayrıntılı açıklamaları yoluyla nasıl kullanılacağını göstereceğiz.

Rsync Kurulumu

rsync yardımcı programı çoğu Linux dağıtımına ve macOS'a önceden yüklenmiştir. Sisteminize yüklenip yüklenmediğini aşağıdakileri yazarak kontrol edebilirsiniz:

rsync --version

rsync version 3.1.2 protocol version 31

Ubuntu ve Debian'a Rsync'i yükleyin

sudo apt install rsync

CentOS ve Fedora'ya Rsync'i yükleyin

sudo yum install rsync

Rsync Komut Sözdizimi

rsync komutunu kullanmaya başlamadan önce, temel sözdizimini gözden geçirerek başlayalım.

rsync yardımcı programı ifadeleri aşağıdaki formu alır:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - rsync seçenekleri. SRC - Kaynak dizin. DEST - Hedef dizin. USER - Uzak kullanıcı adı. HOST - IP adresi için uzak ana bilgisayar adı.

rsync , davranışının her yönünü kontrol eden bir dizi seçenek sunar. En yaygın kullanılan seçenekler:

  • -a , - arşiv, arşiv modu, -rlptgoD eşdeğer. Bu seçenek rsync dizinleri özyinelemeli olarak senkronize etmesini, özel ve blok aygıtları aktarmasını, sembolik bağlantıları, değişiklik sürelerini, grubu, sahipliği ve izinleri korumasını söyler. -z , - --compress . Bu seçenek rsync hedef makineye gönderilirken verileri sıkıştırmaya zorlar. Bu seçeneği yalnızca uzak makineyle bağlantı yavaşsa kullanın. -P , - --partial --progress eşdeğerdir. Bu seçenek kullanıldığında, rsync aktarım sırasında ve kısmen aktarılan dosyaları saklamak için bir ilerleme çubuğu gösterir. Büyük dosyaları yavaş veya dengesiz ağ bağlantıları üzerinden aktarırken kullanışlıdır. --delete . Bu seçeneği kullanırken rsync , yabancı dosyaları hedef konumdan siler. Aynalama için kullanışlıdır. -q , --quiet . Hata olmayan iletileri bastırmak istiyorsanız bu seçeneği kullanın. -e . Bu seçenek farklı bir uzak kabuk seçmenizi sağlar. Varsayılan olarak, rsync ssh kullanacak şekilde yapılandırılmıştır.

Temel Rsync Kullanımı

Tek bir dosyayı bir konumdan başka bir yerel konuma kopyalamak için aşağıdaki komutu çalıştırın:

rsync -a /opt/filename.zip /tmp/

Komutu çalıştıran kullanıcının hedef konumda okuma izinleri ve hedefte yazma izinleri olması gerekir.

Dosya adının hedef konumdan çıkarılması dosyayı geçerli adla kopyalar. Dosyayı farklı bir adla kaydetmek istiyorsanız, hedef kısımda yeni adı belirtin:

rsync -a /opt/filename.zip /tmp/newfilename.zip

Aşağıdaki örnekte web sitesi dosyalarımızın yerel bir yedeğini oluşturuyoruz:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Hedef dizin yoksa, rsync dizini oluşturur.

rsync , kaynak dizinlere sondaki eğik çizgi / ile farklı bir tedavi verdiğini belirtmek gerekir. Kaynak dizine bir eğik çizgi eklerseniz, yalnızca dizinin içeriğini hedef dizine kopyalar. Sondaki eğik çizgi atlandığında, rsync kaynak dizini hedef dizinin içine kopyalar.

Uzak Makineden / Makineye Verileri Senkronize Etmek için Rsync Nasıl Kullanılır

Uzaktan aktarım için rsync kullanırken, hem kaynak hem de hedef makineye kurulmalıdır. rsync yeni sürümleri varsayılan uzak kabuk olarak SSH kullanacak şekilde yapılandırılmıştır.

Aşağıdaki örnekte, bir dizini yerelden uzaktaki bir makineye aktarıyoruz:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ Uzak makinede şifresiz bir SSH girişi ayarlamadıysanız, kullanıcı şifresini girmeniz istenecektir.

Bir uzaktan kumandadan yerel bir makineye veri aktarmak istiyorsanız, uzak konumu kaynak olarak kullanmanız gerekir:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Uzak ana bilgisayardaki SSH varsayılan 22 dışında bir bağlantı noktasını dinliyorsa, -e seçeneğini kullanarak bağlantı noktasını belirtebilirsiniz:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Büyük miktarda veri aktarırken, bir ekran oturumu içinde rsync komutunu çalıştırmanız veya -P seçeneğini kullanmanız önerilir:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Dosyaları ve Dizinleri Hariç Tut

Dosyaları veya dizinleri hariç tutarken, kaynak konuma ilişkin göreli yollarını kullanmanız gerekir.

Dosyaları ve dizinleri hariç tutmak için iki seçenek vardır. İlk seçenek --exclude bağımsız değişkenini kullanmak ve komut satırında hariç tutmak istediğiniz dosya ve dizinleri belirtmektir.

Aşağıdaki örnekte, node_modules içinde bulunan node_modules ve tmp dizinlerini hariç src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

İkinci seçenek --exclude-from bağımsız değişkenini kullanmak ve bir dosyada hariç tutmak istediğiniz dosya ve dizinleri belirtmektir.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

Sonuç

Bu öğreticide, dosyaları ve dizinleri kopyalamak ve senkronize etmek için Rsync'in nasıl kullanılacağını öğrendiniz. Rsync Kullanım Kılavuzu sayfasında Rsync hakkında öğrenilecek çok şey var.

Herhangi bir sorunuz varsa yorum bırakmaktan çekinmeyin.

rsync terminali