GNU/Linux >> Znalost Linux >  >> Linux

Linuxový příkaz rsync s praktickými příklady

Rsync je rychlý a mimořádně všestranný nástroj pro kopírování souborů. Může kopírovat lokálně, do/z jiného hostitele přes libovolný vzdálený shell nebo do/ze vzdáleného démona rsync. Nabízí velké množství možností, které řídí každý aspekt jeho chování a umožňují velmi flexibilní specifikace sady souborů ke kopírování. Je známý svým algoritmem delta-transfer, který snižuje množství dat odesílaných přes síť tím, že posílá pouze rozdíly mezi zdrojovými soubory a existujícími soubory v cíli. Rsync se široce používá pro zálohování a zrcadlení a jako vylepšený příkaz pro kopírování pro každodenní použití.

Rsync najde soubory, které je třeba přenést, pomocí algoritmu „rychlé kontroly“ (ve výchozím nastavení), který hledá soubory, které se změnily ve velikosti nebo v čase poslední změny. Jakékoli změny v ostatních zachovaných atributech (podle požadavků voleb) se provedou přímo v cílovém souboru, když rychlá kontrola ukáže, že data souboru není třeba aktualizovat.

Některé z dalších funkcí rsync jsou

  • podpora kopírování odkazů, zařízení, vlastníků, skupin a oprávnění
  • možnosti vylučování a vylučování podobné jako u GNU tar
  • režim vyloučení CVS pro ignorování stejných souborů, které by ignorovalo CVS
  • může používat jakýkoli transparentní vzdálený shell, včetně ssh nebo rsh
  • nevyžaduje oprávnění superuživatele
  • řetězení přenosů souborů za účelem minimalizace nákladů na latenci
  • podpora anonymních nebo ověřených démonů rsync (ideální pro zrcadlení)

Syntaxe

Základní syntaxe příkazu rsync je:

# rsync options source destination

Některé z běžně používaných možností:

  • –smazat :odstranit soubory, které u odesílatele (systému) neexistují.
  • -v :Podrobný výstup
  • -e „možnosti ssh“ :zadejte ssh jako vzdálený shell
  • -a :režim archivace
  • -r :návrat do adresářů
  • -z :komprimovat data souboru

Příklady příkazů rsync v Linuxu

synchronizace souborů a adresářů v místním systému

# rsync -zvr /usr/  /root/sync-data/

Výše uvedený příkaz zkopíruje nebo synchronizuje všechny soubory a adresáře složky /usr do složky /root/sync-data.

místně synchronizovat soubory se zachováním oprávnění

-a možnosti dělají následující:poskytuje rekurzivní funkce a zachovává oprávnění, symbolické odkazy, informace o uživatelích a skupinách.

# rsync -azv /usr/ /root/sync-data/

synchronizace/kopírování souborů z místního počítače na vzdálený server

# rsync -avz /root/sync-data/ [email protected]:/tmp

Výše uvedený příkaz zkopíruje data složky /root/syc-data na vzdálený počítač s pověřeními uživatele root ve složce /tmp.

synchronizace/kopírování souborů ze vzdáleného serveru na místní počítač

# rsync -avz [email protected]:/tmp/src /opt 
[email protected]'s password: 
receiving file list ... done 
src/ 
src/debug/ 
src/kernels/
sent 38 bytes  received 99 bytes  10.96 bytes/sec 
total size is 0  speedup is 0.00

Výše uvedený příkaz zkopíruje složku /tmp/src vzdáleného serveru do složky /opt místního počítače.

Vzdálená synchronizace přes ssh

rsync nám umožňuje synchronizovat soubory se vzdáleným počítačem a naopak přes ssh, tj. zabezpečenou komunikaci. Pomocí „rsync -e ssh“ specifikujte, který vzdálený shell se má použít. V našem případě rsync použije ssh.

# rsync -avz -e ssh [email protected]:/var/lib/rpm  /opt 
The authenticity of host '192.168.2.149 (192.168.2.149)' can't be established. 
RSA key fingerprint is 45:fc:99:57:34:ba:6a:bb:e3:6f:00:bb:ca:15:3d:c3. 
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.149' (RSA) to the list of known hosts.
[email protected]'s password: 
receiving file list ... done 
rpm/ 
rpm/.rpm.lock 
rpm/Basenames 
rpm/Conflictname 
............
rpm/Triggername
sent 422 bytes  received 12521670 bytes  115410.99 bytes/sec 
total size is 35467264  speedup is 2.83

Zobrazit průběh synchronizace

Pro zobrazení průběhu synchronizace můžeme použít volbu „–progress“.

# rsync -avz  --progress [email protected]:/usr   /opt 
[email protected]'s password: 
receiving file list ... 
44609 files to consider 
usr/ 
usr/tmp -> ../var/tmp 
usr/bin/ 
usr/bin/.fipscheck.hmac 
65 100%   63.48kB/s    0:00:00 (xfer#1, to-check=44605/44609) 
usr/bin/.ssh.hmac 
65 100%   63.48kB/s    0:00:00 (xfer#2, to-check=44604/44609) 
usr/bin/GET 
14519 100%  248.75kB/s    0:00:00 (xfer#3, to-check=44603/44609) 
usr/bin/HEAD 
14519 100%  232.44kB/s    0:00:00 (xfer#4, to-check=44602/44609)
............

Zahrnout a vyloučit možnosti v rsync

rsync nám umožňuje určit vzor, ​​který chceme zahrnout a vyloučit soubory nebo adresáře během synchronizace.

# rsync -avz --include 'P*' --exclude '*' [email protected]:/var/lib/rpm/  /opt 
[email protected]'s password: 
receiving file list ... done 
./ 
Packages 
Providename 
Provideversion 
Pubkeys
sent 129 bytes  received 9395561 bytes  695977.04 bytes/sec 
total size is 28999680  speedup is 3.09

Výše uvedený příklad zahrnuje pouze soubory nebo adresáře začínající na „P“ a vylučuje všechny ostatní soubory. (pomocí rsync vyloučit ‚*‘)

Smažte soubory v cíli, pokud soubory nejsou přítomny ve zdroji

Pomocí možnosti „–delete“ v rsync můžeme smazat soubory vytvořené v cíli, pokud stejné soubory nejsou přítomny ve zdroji.

# rsync -avz --delete [email protected]:/var/lib/rpm/  /opt

PŘÍKLAD:9 ZOBRAZENÍ ZMĚN MEZI ZDROJEM A CÍLEM POMOCÍ VOLBY „-I“

Zobrazení změn mezi zdrojem a cílem

Změny mezi zdrojovými a cílovými soubory můžete zobrazit pomocí volby „-i“. Například:

# rsync -avzi [email protected]:/var/lib/rpm/ /opt
 [email protected]'s password:
 receiving file list ... done
 >f+++++++ .rpm.lock
 >f+++++++ Basenames
 >f+++++++ Conflictname
 >f+++++++ Dirnames
 >f+++++++ Filedigests
 >f+++++++ Group
 >f+++++++ Installtid
 >f+++++++ Name
 >f+++++++ Obsoletename
 >f+++++++ Requirename
 >f+++++++ Requireversion
 >f+++++++ Sha1header
 >f+++++++ Sigmd5
 >f+++++++ Triggername
sent 328 bytes  received 3126214 bytes  297765.90 bytes/sec
total size is 35467264  speedup is 11.34

Omezte velikost přenosového souboru

Pomocí možnosti „–max-size“ můžete přinutit rsync nepřenášet soubory, které jsou větší než určitá velikost.

# rsync -avz --max-size='200k' [email protected]:/var/lib/rpm/ /opt

Výše uvedený příkaz způsobí, že rsync přenese pouze soubory, které jsou menší nebo rovné 200 kB. Můžeme označit M pro megabajty a G pro gigabajty.


Linux
  1. 25 Užitečné hledání Příkaz Praktické příklady v Linuxu

  2. JQ Command v Linuxu s příklady

  3. Praktické příklady příkazu rsync v Linuxu

  1. wc Linux Command s příklady

  2. Linux řazení příkazů s příklady

  3. Praktické příklady příkazu Unzip v Linuxu

  1. Echo Command v Linuxu (s příklady)

  2. Příkaz Rsync v Linuxu s příklady

  3. Linux ip příkaz s příklady