Dosyaları kopyalamak için rsync nasıl kullanılır

How Use Rsync Copy Files



Rsync, dosyaları bir kaynak konumdan bir hedef konuma kopyalamak için kullanılan Linux'ta bir komut satırı aracıdır. Dosyaları, dizinleri ve tüm dosya sistemini kopyalayabilir ve dosyaları farklı dizinler arasında eşitleyebilirsiniz. Dosyaları kopyalamaktan daha fazlasını yapar. Yalnızca yeni veya güncellenmiş dosyaları göndererek ağ üzerinden gönderilen veri miktarını azaltır. Bu nedenle dosya kopyalama ve yedekleme için harika bir yardımcı program olarak kabul edilir. Rsync, dosyaların SSH üzerinden uzak bir sisteme kopyalanmasını da destekler.

Bu yazıda, bazı pratik örneklerle dosyaları kopyalamak için rsync'in nasıl kullanılacağını açıklayacağız. Ayrıca tek bir dosyanın, birden çok dosyanın ve dizinin hem yerel hem de uzak sistemlere kopyalanmasında rsync kullanımını açıklayacağız. Rsync'in aşağıdakiler için nasıl kullanılacağını ele alacağız:







  • Yerel sistem içinde dosya/dizin kopyalayın
  • Yerelden uzak sisteme dosya/dizin kopyalayın
  • Dosyayı/dizini uzak sistemden yerele kopyala

Bu yazıda bahsedilen komutları ve prosedürü bir Ubuntu 20.04 LTS üzerinde açıkladık. Dosyaları rsync kullanarak kopyalamak için komut satırı Terminaline ihtiyacınız olacak. Komut satırı Terminal uygulamasını açmak için Ctrl+Alt+T klavye kısayolunu kullanın.



Rsync'i Yükleme

Rsync, Ubuntu 20.04 LTS'de önceden yüklenmiş olarak gelir. Ancak, yanlışlıkla sistemden kaldırılırsa, aşağıdaki gibi yükleyebilirsiniz:



$sudouygunYüklemekrsync

rsync ile kullanılabilecek yaygın olarak kullanılan seçeneklerden bazıları şunlardır:





–a: arşiv modu
–v: kopyalama işleminin ayrıntılarını gösterir
–p: ilerleme çubuğunu gösterir
–r: verileri yinelemeli olarak kopyalar
–z: verileri sıkıştırır
–q: çıktıyı bastır

Dosyaları ve dizinleri yerel olarak kopyalayın

rsync'in genel sözdizimi şöyledir:



$rsync[seçenek] [kaynak] [hedef]

Tek bir dosyayı yerel olarak kopyalayın

Sisteminizde bir yerden başka bir yere dosya kopyalamak istiyorsanız, bunu yazarak yapabilirsiniz. rsync ardından kaynak dosya adı ve hedef dizin gelir.

Örneğin, tek bir dosya1.txt dosyasını Giriş dizini olan geçerli konumdan ~/Documents dizinine kopyalamak için komut şöyle olacaktır:

$rsync/ev/inanmak/dosya1.txt/ev/inanmak/Belgeler

Not: /home/tin/file1.txt yerine, şu anda ana dizinde çalıştığımız için file1 de yazabiliriz. Ayrıca tam yolu /home/tin/Documents olarak belirtmek yerine ~/Documents kullanabiliriz.

Birden çok dosyayı yerel olarak kopyalayın

Sisteminizde aynı anda birden fazla dosyayı bir konumdan diğerine kopyalamak istiyorsanız, bunu yazarak yapabilirsiniz. rsync ardından kaynak dosya adı ve hedef dizin gelir.

Örneğin, file2.txt ve file3.txt dosyalarını Giriş dizininden ~/Documents dizinine kopyalamak için komut şöyle olacaktır:

$rsync/ev/inanmak/dosya2.txt/ev/inanmak/dosya3.txt/ev/inanmak/Belgeler

Aynı uzantıya sahip tüm dosyaları kopyalamak için dosya adlarını tek tek belirtmek yerine yıldız işareti(*) simgesini kullanabilirsiniz. Örneğin, .zip uzantılı Home dizinindeki tüm dosyaları ~/Documents dizinine kopyalamak için şunu kullanacağız:

$rsync/ev/inanmak/ *.zip ~/Belgeler

Dizinleri yerel olarak kopyalayın

Sisteminizde bir dizini alt dizini ve tüm içeriği ile bir yerden başka bir yere kopyalamak istiyorsanız, bunu yazarak yapabilirsiniz. rsync ardından kaynak ve hedef dizin gelir.

Örneğin, örnek dizini Giriş dizini içindeki test/ dizine kopyalamak için komut şöyle olacaktır:

$rsync-ile ilgili /ev/inanmak/örneklem/ev/inanmak/Ölçek

Not: Kaynak dizinden sonra / belirtilmesi, yalnızca dizinin içeriğini kopyalar. Kaynak dizinden /sonrasını belirtmezsek, kaynak dizin de hedef dizine kopyalanacaktır.

Aşağıdaki çıktıda olduğu gibi, kaynak dizin örneğimizin de hedef dizine kopyalandığını görebilirsiniz (kaynak dizin olarak sample/ yerine sample kullandık).

Rsync, yalnızca yeni veya güncellenmiş dosyaları aktardığını yukarıdaki çıktıda görebileceğiniz gibi artımlı aktarımı destekler.

Dosyaları maksimum boyuta göre kopyalayın

Kopyalama yaparken –max-size seçeneği ile kopyalanabilecek maksimum dosya boyutunu da belirtebiliriz. Örneğin, 2000k'den büyük olmayan dosyaları ~/Downloads dizininden ~/Documents dizinine kopyalamak için komut şöyle olacaktır:

$rsync-ile --max-boyutu=2000k/ev/inanmak/İndirilenler/ * /ev/inanmak/Belgeler

Bu komut, 2000k'den büyük olanlar hariç, ~/Downloads dizinindeki tüm dosyaları ~/Documents dizinine kopyalayacaktır.

Dosyaları minimum boyuta göre kopyalayın

Benzer şekilde, kopyalanabilecek minimum dosya boyutunu da –min-size seçeneği ile belirtebiliriz. Örneğin, ~/Downloads dizininden ~/Documents dizinine 5M'den küçük olmayan dosyaları kopyalamak için komut şöyle olacaktır:

$rsync-ile --min-size=5 milyon/ev/inanmak/İndirilenler/ /ev/inanmak/Belgeler

Bu komut, ~/Downloads içindeki tüm dosyaları ~/Documents dizinine 5M'den küçük olanlar hariç kopyalayacaktır.

Dosyaları hariç tut

Dosyaları bir dizinden diğerine kopyalarken, —hariç tut seçeneğini ve ardından dosya adını veya dosya türünün uzantısını kullanarak bazı dosyaları hariç tutabilirsiniz.

Örneğin, dosyaları ~/Downloads dizininden ~/Documents dizinine kopyalarken tüm .zip dosyalarını hariç tutmak için komut şöyle olacaktır:

$rsync-ile --hariç tutmak='*.zip' /ev/inanmak/İndirilenler/ /ev/inanmak/Belgeler

Dosyaları ve dizinleri uzaktan kopyalayın

Rsync ile tek bir dosyayı, birden çok dosyayı ve dizini uzak bir sisteme kopyalayabilirsiniz. Dosyaları ve dizinleri uzaktan kopyalamak için şunları yapmanız gerekir:

  • Hem yerel hem de uzak sistemde yüklü Rsync
  • Uzak sisteme SSH erişimi
  • Uzak kullanıcı şifresi

Dosyaları rsync kullanarak kopyalamadan önce, uzak sisteme SSH aracılığıyla erişebildiğinizden emin olun:

$sshuzak kullanıcı@remote_ip


Dosyaları ve dizinleri rsync kullanarak uzak bir sisteme kopyalamak için genel sözdizimi:

$rsync[seçenek] [kaynak] [uzak kullanıcı@remoteip:hedef]

Örneğin, tek bir file.txt dosyasını ~/Downloads'dan uzak sistem ~/Documents dizinine kopyalamak için komut şöyle olacaktır:

$rsync-v~/İndirilenler/file1.txt umara@192.168.72.164:~/Belgeler

Benzer şekilde, yerel bir sistemdeki ~/Downloads/files dizinini alt dizini ve tüm içeriği ile uzak sistemdeki ~/Downloads/samples dizinine kopyalamak için:

$rsync-rv~/İndirilenler/dosyalar umra@192.168.72.164:~/İndirilenler/örnekler

Dosyaları ve dizinleri uzak makineden yerel makinenize de kopyalayabilirsiniz. Örneğin, bir file2.txt dosyasını uzak sistemden yerel sistem masaüstüne kopyalamak için:

$rsync-vumara@192.168.72.164:~/İndirilenler/dosya2.txt ~/masaüstü/

Benzer şekilde, uzak sistemden yerel sisteme bir dizini kopyalamak için

$rsync-rvumara@192.168.72.164:~/İndirilenler/örnek ~/masaüstü/Ölçek

Uzaktaki sisteme/sistemden dosya kopyalarken –max-size, –min-size, –exclude ve diğerleri gibi tüm seçenekleri de kullanabilirsiniz.

Rsync, dosyaları kaynaktan hedefe yerel veya uzaktan kopyalamak için harika bir araçtır. Dosyaları uzaktaki sisteme/sistemden aktarırken size esneklik ve kontrol sağlayan çok sayıda seçenek içerir.