▷ Rsync Linux: Örnekler nasıl kullanılır ve komut verilir

Linux'ta komutların kullanımı, uzun yıllardır Linux'un kalbi olduklarından, doğal olmaktan daha fazlasıdır, bu nedenle bu komutları kullanma şeklimizin farkında olmalıyız, çünkü bazıları temel görevler için pratik olduğu gibi, diğerleri de olabilir. onları doğru yönetemezsek tehlikeli olur. En işlevsel Linux komutlarından biri, Solvetic'in bu öğretici boyunca size ayrıntılı olarak açıklayacağı rsync protokolüdür. önce görelim rsync nedir.

Şu anda herhangi bir boyuttaki bir altyapıyı herhangi bir yedekleme olmadan sürdürmek çılgınlık olarak kabul edilebilir, bir disk her an arızalanabilir ve şirketin muhasebesi kadar değerli bilgileri kaybedebilirsiniz. Bu yazımızda *nix sistemlerinde yedeklemeler için en iyi araçlardan biri olan Rsync'in nasıl kullanılacağından bahsedeceğiz. Çalışma ortamınızda uygulayabileceğiniz betikler ve örneklerle en temelden daha gelişmiş örneklere kadar göreceğiz. rysnc'nin nasıl kullanılacağını bilmek için bir kılavuz olacak.

Aynı bilgilere farklı yerlerde sahip olma ihtiyacı giderek güçleniyor, çünkü çalışma alanımız değişken ve araçlarımızı her zaman yanımızda, hatta yedek önlem olarak istiyoruz.

rsync nedir?Dosyaları ve dizinleri bir konum ve diğeri arasında aktarmak için açık kaynaklı bir araçtır. Avantajları esas olarak gönderilecek bilgilerin sıkıştırılmasına dayanır, aktarımın bir SSH kanalı üzerinden yapılmasına izin verir ve tüm dosyayı tekrar aktarmak yerine sadece değiştirilmiş dosya ve dosya parçalarını aktarır, bir şey Git sürüm kontrolü altındaki bir dosyadaki farklılıkları aktarırken olanlara benzer.

rsync (Uzaktan Senkronizasyon) komutu, Linux veya UNIX sistemlerinde uzaktan veya yerel olarak dosya ve dizin kopyalama ve senkronizasyon görevleri için geliştirilmiş bir komuttur.

Bu komutla aşağıdakilerden kopyalar yapabiliriz:

  • yerel olarak
  • Uzak bir kabuk kullanma
  • Uzak bir rsync arka plan programı aracılığıyla

Rsync kullanırrsync'in farklı kullanımları arasında şunlar yer alır:

  • Uzak sunuculara veya disklere otomatik yedeklemeler.
  • Uzak dosya ve dizin senkronizasyonu.
  • Ortak dosya aktarımı.

Rsync avantajları

  • scp'den (Güvenli Kopyalama) daha hızlıdır çünkü rsync, yalnızca dosyalar arasındaki farkı aktarmaya izin veren bir yükleme protokolü kullanır, ilk seferde tüm dosyayı ikinci kez yalnızca mevcut değişiklikleri aktarır.
  • Uzak yedeklemeler için tasarlanmıştır.
  • Sahip, yumuşak gruplar ve sabit bağlantı gibi tüm dosya izinlerinin kopyalanmasını destekler.
  • Dosya gönderirken sıkıştırma kullanarak daha az bant genişliği kullanın.

Rsync, ağ üzerinden gönderilen veri miktarını azaltarak, yalnızca kaynak dosyalar ile uzak hedefteki mevcut dosyalar arasındaki farkların gönderilmesine izin veren bir delta aktarım işlevine sahiptir, bu nedenle rsync, yedekleme ve çoğaltma için idealdir.
Rsync, bir tür değişiklik geçirmiş dosyaları aramakla görevli bir lqquick checkqq algoritması kullanarak aktarılacak dosyaları arama sürecinde hareket eder.

Rsync ÖzellikleriBaşlıca özelliklerinden bazıları şunlardır:

  • GNU tar'a benzer dışlama seçenekleri işlevlerini entegre eder
  • Linux bağlantılarını, cihazlarını, sahiplerini, gruplarını ve izinlerini kopyalama desteği vardır.
  • CVS'nin işlevinde yok sayacağı aynı dosyaları yok saymaya izin veren bir CVS hariç tutma modu ekleyin
  • Süper kullanıcı ayrıcalıkları gerektirmez (kök)
  • ssh veya rsh gibi uzak bir kabuk kullanabiliriz
  • Ağ gecikme maliyetlerini en aza indirmek için dosya aktarımlarının ardışık düzenini sağlar
  • Kimliği doğrulanmış veya anonim rsync arka plan programlarını destekler
  • scp'den daha hızlıdır

rsync sadece yeni dosyaları kopyala veya rsync hedef dosyaları sil gibi görevleri gerçekleştirebilmek için rsync ve rsync parametrelerinin nasıl kullanılacağını göreceğiz.

1. rsync nasıl kullanılır

Bu komutu kullanmak için sözdizimi aşağıdaki gibidir:

 rsync seçenekleri kaynak hedefi 
Rsync değişkenleriBu söz dizimini kullanarak aşağıdaki gibi bazı değişkenler ekleyebiliriz:

  • -v: ayrıntılı mod.
  • -r: Bu seçenek, işlem sırasında zaman damgası ve izin bırakmadan verileri yinelemeli olarak kopyalar.
  • -a: dosyaların özyinelemeli kopyalanmasına izin veren ve sembolik bağları, dosya izinlerini, kullanıcı ve grup sahipliğini ve zaman damgalarını koruyan dosya modu.
  • -z: Bu seçenek dosyadaki verileri sıkıştırır.
  • -h: insan tarafından okunabilir mod, insan tarafından okunabilir bir biçimde çıktı numaraları.

Şimdi bu komutun nasıl kullanılacağına dair bazı örnekler görelim. Eğitimin sonunda Solvetic, Linux'ta rsync kullanmak için size başka parametreler verecektir.

2. rsync nasıl kurulur

Aşama 1
Mevcut sistemlerin çoğunda, rsync varsayılan olarak kuruludur, ancak kurulu değilse, aşağıdakileri uygulayabiliriz:

 yum install rsync (Red Hat - CentOS - Fedora) apt-get install rsync (Debian - Ubuntu)

BÜYÜT

Adım 2
Her durumda, rsync kurulumunu onaylamamız gerekir, Ubuntu 20 gibi bazı sistemlerde zaten varsayılan olarak gelir:

3. Dosyaları kopyalayın ve dizinleri rsync ile kopyalayın


rsync'in ilk kullanımı, bir dosya veya dizini yerel olarak kopyalamak veya senkronize etmektir. Şimdi rsync dosyalarını nasıl kopyalayacağınızı, rsync ile dizinleri nasıl kopyalayacağınızı ve rsync ile iki dizini nasıl senkronize edeceğinizi görelim.

Aşama 1
Bunun için aşağıdakileri uygulayacağız

 rsync -zvh "dosya" "hedef" 

Adım 2
Orada aşağıdaki gibi ayrıntıları görebiliriz:

  • Veri gönderildi
  • Alınan veri miktarı
  • Aktarım hızı
  • Toplam büyüklük

Aşama 3
Durum yerel olarak bir dizini kopyalamaksa, aşağıdakileri uygulayacağız:

 rsync -zvh "dizin" "hedef" 

4. Uzak rsync klasörlerini veya uzak dizini kopyalayın veya senkronize edin

Aşama 1
Dosyaları yerel olarak uzak bir bilgisayara kopyalayabilir veya senkronize edebiliriz, bunun için aşağıdaki sözdizimini kullanacağız:

 rsync -avz dosyası / [email protected]: / hedef / 

Adım 2
Uzak IP'yi her kullandığımızda, söz konusu uzak bilgisayarın kök şifresini girmeliyiz. Şimdi, uzak bir dizini yerel sunucumuza kopyalayacaksak, aşağıdaki sözdizimini kullanacağız:

 rsync -azvh [email protected]: / hedef / dizin / 

5. Rsync SSH nasıl kullanılır


SSH (Güvenli Kabuk), veri aktarımı için ek bir güvenlik mekanizmasıdır; bu, SSH'nin yüksek düzeyde standartlaştırılmış şifreleme ile güvenli bir bağlantı kullanması nedeniyle elde edilir.

Aşama 1
Yerel bir dosyayı SSH ile uzak bir bilgisayara kopyalayacaksak, kullanmak istediğiniz protokolün adı ile "-e" seçeneğini kullanmalıyız:

 rsync -avzhe ssh [email protected]: / hedef / dizin 

Adım 2
Yerel bir dosyayı uzak bir sunucuya kopyalamak için aşağıdaki sözdizimini kullanacağız:

 rsync -avzhe ssh "dosyası" [email protected]: / hedef / 

Aşama 3
Dosyanın veya dizinin kopyalandığını uzak dizinde doğrulayabiliriz:

BÜYÜT

6. Rsync dosya veya dizin aktarım ilerlemesini gösteriyor


Bu, daha iyi transfer yönetimi için bir yöntemdir, bu -progress parametresi ile elde edilir:
 rsync -avzhe ssh --progress / kaynak kö[email protected]: / hedef 

7. rsync dizinlerini dahil et veya hariç tut


-include ve -exclude seçenekleri, dosyaları dahil etmemize veya hariç tutmamıza izin veren seçeneklerdir, ayrıca senkronizasyona dahil edilecek dosyaları veya dizinleri belirtmemize veya aktarılmaması gereken dosya ve klasörleri hariç tutmamıza izin verir.

Kullanımı aşağıdaki gibidir:

 rsync -avze ssh --include 'Letter *' --exclude '*' [email protected]: / hedef 

8. Rsync dosyaları ve dizinleri siler


Bir dosya veya dizinin kaynakta olmaması, ancak hedefte zaten mevcut olması durumunda, senkronizasyon işlemi sırasında o dosyayı veya dizini silebiliriz, bunun için -delete'i kullanarak sistemde olmayan öğeleri silebiliriz. hedef bilgisayar, aşağıdakileri uygulayacağız:
 rsync -avz --delete [email protected]: / hedef 

9. Rsync Sınır dosya boyutu


-max-size parametresiyle, rsync ile aktarılacak nesnelerin maksimum boyutunun hangisi olduğunu belirtebiliriz, bu, uzak alanı kontrol etmeye yardımcı olur:
 rsync -avzhe ssh --max-size = '300k' / kaynak / [email protected]: / hedef 

10. Aktarım başarılı olursa Rsync kaynak dosyaları siler

-remove-source-files değişkeni ile, kaynakta senkronize edilmiş dosyaların yalnızca tüm süreç doğruysa elimine edilmesi mümkündür, bunun için aşağıdakileri kullanacağız. Kaynak dosyanın silindiğini görüyoruz.

 rsync --remove-source-files -zvh "dosya" / hedef / 

11. Dosyaları etkilemeden rsync'i çalıştırın


Bu, komutun ne yapacağını gösterdiğinden ancak orijini etkilemediğinden rsync'in gücünü tam olarak bilmeyenler için ideal bir seçenektir, bu örneğin -dry-run parametresi ile sağlanır. Dosyanın hala orada olduğunu görebiliriz.
 rsync --dry-run --remove-source-files -zvh "dosya" / hedef / 

12. Rsync bant genişliğini sınırla


-bwlimit parametresi ile senkronizasyon görevleri için rsync'in hangi ağ hızını kullanması gerektiğini belirlemek mümkün olacaktır, bu şu şekilde sağlanır:
 rsync --bwlimit = 200 -avzhe ssh / kaynak / [email protected]: / hedef 

13. Rsync ile Yedekleme


Bazen değişiklik yapmadan önce bazı bilgileri yedeklememiz gerekir ve Yedekleme'den kurtarma hatası olması durumunda, bir laboratuvarın bir klasörden diğerine yedeklenmesiyle başlayacağız. Bu şekilde rsync ile eksiksiz ve güvenli bir şekilde yedek oluşturacağız.

Aşama 1
rsync'in kurulu olduğunu doğrulayarak başlıyoruz.

 [kullanıcı @ Solvetic ~] $ hangi rsync / usr / bin / rsync
Adım 2
Dosyaların kaynağı ve hedefi için 2 klasör oluşturacağız.
 mkdir {yedekleme1, yedekleme2} 
Aşama 3
backup1 klasöründe birkaç dosya oluşturuyoruz, bu durumda dosyaların boyutu önemli değil.
 [kullanıcı @ Solvetic ~] $ dokunmatik yedekleme1 / dosya {1… 75} 
4. Adım
Dizinde 75 dosya olmalıdır. Yedekleme yapıyoruz.
 [kullanıcı @ Solvetic ~] $ ls yedekleme1 / dosya1 dosya14 dosya19 dosya23 dosya28 dosya32 dosya37 dosya41 dosya46 dosya50 dosya55 dosya6 dosya64 dosya69 dosya73 dosya10 dosya15 dosya2 dosya24 dosya29 dosya33 dosya38 dosya42 dosya47 dosya51 dosya56 dosya60 dosya65 dosya7 dosya74 dosya11 dosya16 dosya20 dosya25 dosya3 dosya34 dosya39 dosya43 dosya48 dosya52 dosya57 dosya61 dosya66 dosya70 dosya75 dosya12 dosya17 dosya21 dosya26 dosya30 dosya35 dosya4 dosya44 dosya49 dosya53 dosya58 dosya62 dosya67 dosya71 dosya8 dosya13 dosya18 dosya22 dosya27 dosya31 dosya36 dosya40 dosya45 dosya5 dosya54 dosya59 dosya63 dosya68 dosya72 dosya9
Adım 5
Dosyaları backup2'ye yedeklemek için kullanıyoruz. Kaynak / ile bitmelidir, aksi takdirde içeriği değil, klasörünü kopyalar.
 rsync -r yedekleme1 / yedekleme2 
6. Adım
Backup2'ye girersek, diff kullanarak 2 özdeş dizin olduklarını doğrulayabileceğimiz 75 dosyayı görebiliriz.
 [kullanıcı @ Solvetic ~] $ fark yedekleme1 yedekleme2 
7. Adım
Dizin 1'deki bir dosyadan bir softlink oluşturulması durumunda
 ln -s dosyası30 dosya100 
8. Adım
-r ile rsync kullanmak, kullandığımız bu durumda softlink'i senkronize etmeyecektir. Bu zamana bakarsak, softlink'i senkronize etmiş olacağız.
 rsync -a yedekleme1 / yedekleme2 
NotNeyi destekleyeceğimizden emin değilsek -n ile bir simülasyon kullanabiliriz ve -v ile birlikte çok faydalı olabilir.
 [user @ Solvetic ~] $ rsync -anv backup1 / backup2 artan dosya listesi gönderme 606 bayt alındı ​​12 bayt 1236.00 bayt / sn toplam boyut 6 hızlanma 0.01 (DRY RUN)

14. Diğer Rsync parametreleri


Bahsettiğimiz gibi, Linux'ta rsync ile kullanılacak ek parametrelerden bazıları şunlardır:

Rsync parametreleri

  • -t, --times: zaman değişikliğini koru
  • -g, --group: grupları tut
  • -o, --owner: nesnenin sahibini korur
  • -B, --block-size = SIZE: sabit bir sağlama toplamı blok boyutunu zorla
  • T, --temp-dir = DIR: bu değer, DIR dizininde geçici dosyalar oluşturur
  • z, --compress: aktarım sırasında dosya verilerini sıkıştır
  • -4, --ipv4: yalnızca IPv4 kullan
  • -6, --ipv6: yalnızca IPv6 kullan

Daha birçok değişken var, ancak bunlar Linux'ta rsync'den en iyi şekilde yararlanmanız için fazlasıyla yeterli. En kullanışlı seçeneklerle rsync'i nasıl kullanacağımızı gördük, cron ve bash scriptleri, python gibi araçlarla birlikte üçüncü parti araçlara ihtiyaç duymadan yedeklemelerimizi yapmak için ihtiyacımız olan her şeye sahip olacağız.

wave wave wave wave wave