GNU/Linux >> Znalost Linux >  >> Linux

17 užitečných rsync (vzdálená synchronizace) Příklady příkazů v Linuxu

Jak název napovídá, příkaz rsync se používá k synchronizaci (nebo kopírování) souborů a adresářů lokálně i vzdáleně. Jednou z důležitých vlastností rsync je, že funguje na „algoritmu přenosu delta “, znamená, že bude pouze synchronizovat nebo kopírovat změny ze zdroje do cíle namísto kopírování celého souboru, což v konečném důsledku snižuje množství dat odesílaných přes síť. Linuxoví nadšenci obvykle používají příkaz rsync ke správě každodenních činností zálohování, zrcadlení a obnovy. Používá vzdálený shell jako SSH při synchronizaci souborů z místního počítače na vzdálený počítač a každý uživatel v systému může použít příkaz rsync, protože nevyžaduje oprávnění root nebo sudo..

V tomto článku probereme 17 užitečných příkladů příkazů rsync v Linuxu. Tyto příklady pomohou zejména začátečníkům v Linuxu efektivněji spravovat jejich úlohy synchronizace, zrcadlení a zálohování.

Příkaz Rsync je dostupný pro všechny operační systémy UNIX a Linux. Když provedeme minimální instalaci CentOS &RHEL OS, pak balíček rsync není součástí výchozí instalace, takže pro instalaci rsync na CentOS &RHEL spusťte příkaz beneath yum

~]# yum nainstalovat rsync -y

V operačních systémech podobných Debianu (Ubuntu a Linux Mint) použijte níže uvedený příkaz apt k instalaci nástroje rysnc,

~]# instalace apt rsync -y

Syntaxe příkazu rsync:

Místní synchronizace:# rsync {options} {Zdroj} {Cíl}

Vzdálená synchronizace:# rsync {options}  @: 

Vzdálená synchronizace Push:# rsync       @:

Některé z běžně používaných voleb v příkazu rsync jsou uvedeny níže:

  • -v, –verbose                             Podrobný výstup
  • -q, –tichý                                  potlačit výstup zprávy
  • -a, –archive                               archivovat soubory a adresář během synchronizace ( -a se rovná následujícím možnostem -rlptgoD)
  • -r, –rekurzivní                            rekurzivně synchronizovat soubory a adresáře
  • -b, –backup                               provést zálohu během synchronizace
  • -u, –update                              nekopírujte soubory ze zdroje do cíle, pokud jsou cílové soubory novější
  • -l, –links                                   kopírovat symbolické odkazy jako symbolické odkazy během synchronizace
  • -n, –dry-run                              provést zkušební provoz bez synchronizace
  • -e, –rsh=COMMAND            zmínit vzdálený shell, který se má použít v rsync
  • -z, –compress                          komprimovat data souboru během přenosu
  • -h, –čitelný pro člověka            zobrazí výstupní čísla ve formátu čitelném pro člověka
  • –průběh                                  zobrazit průběh synchronizace během přenosu

Pojďme se vrhnout na užitečné příklady příkazu rsync

Příklad:1) Místní kopírování nebo synchronizace souborů (rsync -zvh)

Předpokládejme, že chceme zkopírovat soubor z domovského adresáře uživatele pkumar do složky /opt/back, spusťte níže uvedený příkaz rsync

[[email protected] ~]# rsync -zvh /home/pkumar/OpenStack-Networking.pdf /opt/backupOpenStack-Networking.pdfsent 4,09 mil. bajtů  přijato 35 bajtů  2,73 mil. bajtů/sekce celková velikost je 6,15 mil. [[e-mail chráněn] ~]#

Výše jsme použili možnosti jako -z pro kompresi, -v pro podrobný výstup a -h pro výstup čitelný pro člověka.

Příklad:2) Zkopírujte nebo synchronizujte adresář lokálně (rsync -zavh)

Předpokládejme, že chceme zkopírovat nebo synchronizovat domovský adresář uživatele pkumar do složky /opt/backup, spusťte  níže uvedený příkaz rsync s možnostmi -zavh ,

[[email protected] ~]# rsync -zavh /home/pkumar /opt/backupsending přírůstkový soubor listpkumar/pkumar/.bash_logoutpkumar/.bash_profilepkumar/.bashrcpkumar/OpenStack-Networking.pdfsent 8,9M bytes přijato 4,09M bajtů/sektor celková velikost je 6,15 milionu  zrychlení je 1,50[[email chráněný] ~]#

Ověřte, zda je adresář zkopírován nebo ne, proveďte níže uvedený příkaz

[[e-mail chráněný] ~]# ls -ld /opt/backup/*-rwx------. 1 kořen   kořen   6153239 7. dubna 00:25 /opt/backup/OpenStack-Networking.pdfdrwx------. 2 pkumar pkumar      90 dub  7 00:25 /opt/backup/pkumar[[email protected] ~]#

Jak vidíme, v cílové složce se vytvoří adresář „pkumar“ a jeho obsah se také zkopíruje. Pokud ve výše uvedeném příkladu použijete trail / after source folder (/home/pkumar/), pak příkaz rsync nevytvoří adresář pkumar v cíli, ale zkopíruje pouze obsah.

[[e-mail chráněný] ~]# rsync -zavh /home/pkumar/ /opt/backup

Příklad:3) Zkopírujte soubory a adresáře rekurzivně lokálně (rsync -zrvh nebo rsync -zavh)

Předpokládejme, že v domovském adresáři uživatele pkumar máme více souborů a adresářů, použijte níže uvedený příkaz rsync ke kopírování souborů a adresářů rekurzivně, buď použijte volbu -a nebo -r pro rekurzivní kopírování souborů a adresářů.

Poznámka :V příkazu rsync -a možnost slouží k archivaci během kopírování nebo synchronizace a kromě archivace – možnost se používá také pro následující:

  • rekurzivně kopírovat soubory a adresář
  • kopírovat symbolické odkazy jako symbolické odkazy
  • zachovat oprávnění
  • zachovat skupinu
  • zachovat čas úpravy
  • zachovat vlastnictví
[[e-mail chráněný] ~]# rsync -zrvh /home/pkumar /opt/backupor[[chráněn e-mailem] ~]# rsync -zavh /home/pkumar /opt/backup

Příklad:4) Kopírování nebo synchronizace souborů a adresářů z místního do vzdáleného systému

Předpokládejme, že chceme zkopírovat složku „/home/pkumar/techi ” z místního počítače na vzdálený počítač (192.168.1.29) pod /opt

[[email chráněný] ~]# rsync -zarvh /home/pkumar/techi [e-mail chráněný]:/opt[heslo chráněné e-mailem]:……………………………………… …………………techi/OTRS/techi/OTRS/Database-Selection-OTRS-Installation-CentOS7.jpgtechi/OTRS/Install-OTRS-Accept-License.pngtechi/OTRS/Install-OTRS-CentOS7-RHEL7.jpgtechi /OTRS/mysql-secure-installation-centos7-part2.jpgodesláno 34,85 milionů bajtů  přijato 2,65 kB ………………[[e-mail chráněný] ~]#

Příklad:5) Kopírování nebo synchronizace souborů a adresářů ze vzdáleného počítače do místního systému

Předpokládejme, že chceme zkopírovat soubory a adresáře ze vzdáleného počítače (192.168.1.29) do našeho místního systému, v níže uvedeném příkladu kopíruji vzdálenou složku “/opt/rpms_db ” na mém místním počítači pod /tmp složka

[[e-mail chráněný] ~]# rsync -zarvh [e-mail chráněný]:/opt/rpms_db /tmp[heslo chráněné e-mailem]:přijímání seznamu přírůstkových souborů………………………………… …………………………rpms_db/rpms_db/httpd-2.4.6-88.el7.centos.x86_64.rpmrpms_db/httpd-tools-2.4.6-88.el7.centos.x86_64.rpmrpms_db/postfix- 2.10.1-7.el7.x86_64.rpmrpms_db/pytalloc-2.1.13-1.el7.x86_64.rpmrpms_db/samba-4.8.3-4.el7.x86_64.rpmrpms_db/samba-4client-libs-4.8.3 4.el7.x86_64.rpmrpms_db/samba-common-4.8.3-4.el7.noarch.rpmrpms_db/samba-common-libs-4.8.3-4.el7.x86_64.rpmrpms_db/samba-common-tools-4 3-4.el7.x86_64.rpmrpms_db/samba-libs-4.8.3-4.el7.x86_64.rpmsent 484 bajtů  přijato 15,45 M bajtů  1,07 M bajtů/sektor celková velikost je 16,37 M. 0 zrychlení 6e je 16,37 M #

Výše uvedený příkaz automaticky vytvoří složku „rpms_db“ ve složce /tmp na našem místním počítači.

[[e-mail chráněný] ~]# ls -l /tmp/total 8-rwx------. 1 kořenový kořen  827 dubna  6 12:54 ks-script-avmuxwdrwxr-xr-x. 2 root root 4096 7. dubna 01:42 rpms_db-rw-------. 1 kořenový kořen    0 dubna  6 12:35 yum.log[[e-mail chráněný] ~]# ls -l /tmp/rpms_db/celkem 16028……………………………………-rw-r-- r--. 1 kořenový kořen 2844028 12. listopadu 09:28 httpd-2.4.6-88.el7.centos.x86_64.rpm-rw-r--r--. 1 kořenový kořen   92504 12. listopadu 09:28 httpd-tools-2.4.6-88.el7.centos.x86_64.rpm-rw-r--r--. 1 kořenový kořen 2558136 12. listopadu 09:44 postfix-2.10.1-7.el7.x86_64.rpm-rw-r--r--. 1 kořenový kořen   17404 12. listopadu 09:44 pytalloc-2.1.13-1.el7.x86_64.rpm-rw-r--r--. 1 kořenový kořen  696472 12. listopadu 09:46 samba-4.8.3-4.el7.x86_64.rpm-rw-r--r--. 1 kořenový kořen 5070800 12. listopadu 09:46 samba-client-libs-4.8.3-4.el7.x86_64.rpm-rw-r--r--. 1 kořenový kořen  210984 12. listopadu 10:19 samba-common-4.8.3-4.el7.noarch.rpm-rw-r--r--. 1 kořenový kořen  167512 12. listopadu 09:46 samba-common-libs-4.8.3-4.el7.x86_64.rpm-rw-r--r--. 1 kořenový kořen  458380 12. listopadu 09:46 samba-common-tools-4.8.3-4.el7.x86_64.rpm-rw-r--r--. 1 kořenový kořen  282332 12. listopadu 09:46 samba-libs-4.8.3-4.el7.x86_64.rpm…………………………………………[[e-mail chráněný] ~]#

Příklad:6) Určete vzdálený shell během synchronizace (rsync -e ssh)

V příkazu rsync můžeme během synchronizace specifikovat vzdálený shell jako ssh, předpokládejme, že chceme použít zabezpečenou komunikaci mezi zdrojem a cílovým počítačem přes rsync, pak bychom měli použít ssh jako vzdálený shell, příklad je uveden níže

[[chráněno e-mailem] ~]# rsync -zarvh -e ssh  [chráněno e-mailem]:/opt/rpms_db  /tmp[e-mailem chráněno] heslo:přijímání seznamu přírůstkových souborů………………………… …………………………………………………………rpms_db/rpms_db/httpd-2.4.6-88.el7.centos.x86_64.rpmrpms_db/httpd-tools-2.4.6-88. el7.centos.x86_64.rpmrpms_db/postfix-2.10.1-7.el7.x86_64.rpmrpms_db/pytalloc-2.1.13-1.el7.x86_64.rpmrpms_db/samba-4.8.3x86_4.el7 samba-client-libs-4.8.3-4.el7.x86_64.rpmrpms_db/samba-common-4.8.3-4.el7.noarch.rpmrpms_db/samba-common-libs-4.8.3-4.el7.x86_64. rpmrpms_db/samba-common-tools-4.8.3-4.el7.x86_64.rpmrpms_db/samba-libs-4.8.3-4.el7.x86_64.rpmsent 484 bajtů  přijato 15,45 milionů bajtů na velikost 3 x 1,82 te zrychlení je 1,06[[e-mail chráněno] ~]#

Příklad:7) Zobrazení průběhu synchronizace ve výstupu příkazu rsync

Pokud chcete vidět průběh synchronizace nebo kopírování v příkazu rsync, použijte „–progress “, příklad je uveden níže

[[chráněno e-mailem] ~]# rsync -avh --progress [chráněno e-mailem]:/opt/rpms_db /tmp[heslo chráněné e-mailem]:přijímání seznamu přírůstkových souborů………………………… …………………………………………………………………………..rpms_db/rpms_db/httpd-2.4.6-88.el7.centos.x86_64.rpm          2,84 M 100 %   35,22 MB/s    0:00:00 (xfr#6, to-chk=18/25)rpms_db/httpd-tools-2.4.6-88.el7.centos.x86_64.rpm     1    92,50 K 92,50 K /s    0:00:00 (xfr#7, to-chk=17/25)rpms_db/postfix-2.10.1-7.el7.x86_64.rpm           2,56 M 100 %   14,44 MB/s 0:0 0:0:#17, to-chk=7/25)rpms_db/samba-4.8.3-4.el7.x86_64.rpm        696,47 kB 100 %    3,71 MB/s    =0:00:00 (xfr#19, to-k 25)rpms_db/samba-client-libs-4.8.3-4.el7.x86_64.rpm          5,07 M 100 %   19,90 MB/s    0:00:00 (xfr#20, to-chk_sdb=4) -common-4.8.3-4.el7.noarch.rpm        210,98 kB 100 %  844,42 kB/s    0:00:00 (xfr#21, to-chk=3/25)rpms_db/samba-common-libs-4 3-4.el7.x86_64.rpm        167,51 kB 100 %  667,70 kB/s    0:00:00 (xfr#22, to-chk=2/25)rpms_db/samba-common-tools-4.7.8 .x86_6 4.rpm        458,38 kB 100 %    1,77 MB/s    0:00:00 (xfr#23, to-chk=1/25)rpms_db/samba-libs-4.8.3-4.el7.x86 321.rpm   %    % 1,09 MB/s    0:00:00 (xfr#24, to-chk=0/25)odesláno 484 bajtů  přijato 16,38 M bajtů  3,64 M bajtů/sekt celková velikost je 16,37 M  zrychlení je 1,00[[ 

Přečtěte si také: 14 příkladů příkazů SCP pro bezpečný přenos souborů v systému Linux

Příklad:8) Zkopírujte adresářovou strukturu bez kopírování souborů

Existují některé scénáře, kdy chceme zkopírovat adresářovou strukturu přeskakováním souborů pouze z místního počítače na vzdálený nebo naopak.

Předpokládejme, že chceme zkopírovat adresářovou strukturu „/home/pkumar“ z místního počítače na vzdálený počítač (192.168.1.29) do složky /opt.

[e-mail chráněný] ~]# rsync -av -f"+ */" ​​-f"- *" /home/pkumar [e-mail chráněný]:/opt/[e-mail chráněný]'s password:building list list . .. hotovo………………………………………………pkumar/odeslané 43 bajtů  přijato 19 bajtů  17,71 bajtů/sekce celková velikost je 0  zrychlení je 0,00[[e-mail chráněný] ~]#

Příklad:9) Obnovení přenosu velkých souborů po selhání v scp

V linuxovém admin profilu existuje několik scénářů, kdy jsme začali kopírovat větší soubor pomocí příkazu scp, ale ten byl uprostřed ukončen a my si nemůžeme dovolit začít ho znovu kopírovat pomocí scp kvůli jeho velké velikosti a časové náročnosti.

Takže v této situaci lze použít příkaz rsync, protože může začít kopírovat soubor od místa, kde skončil nebo skončil, nebo jinými slovy, rsync může přenést soubory, které jsou částečně zkopírovány pomocí příkazu scp. Příklad je uveden níže,

[[email chráněný] ~]# scp [e-mail chráněný]:/root/ubuntu-18.04-desktop-amd64.iso /opt[e-mail chráněný] heslo:ubuntu-18.04-desktop-amd64.iso  8 %                       526 MB  61,5 MB/s   00:21 ETA^CKilled by signal 2.[[email protected] ~]#[[email protected] ~]# rsync -P --rsh=ssh [e-mail protected]:/root/ubuntu-18.04 -desktop-amd64.iso /opt[e-mail chráněný] heslo:ubuntu-18.04-desktop-amd64.iso  1 921 843 200 100 %   18,47 MB/s    0:01:39 (xfr#1, až- [[e-mail chráněn] ~]#

Příklad:10) Smažte soubory v cíli, pokud nejsou přítomny ve zdroji (–delete)

Pokud jste již synchronizovali soubory ze zdroje do cíle a ze zdroje jste soubory smazali, můžete přinutit příkaz rsync k odstranění souborů v cíli pomocí možnosti –delete, příklad je uveden níže

[[e-mail chráněný] ~]# rsync -avz --delete /opt/rpms_db [e-mail chráněný]:/tmp/rpms_db[heslo chráněné e-mailem]:odesílání přírůstkového souboru mazání seznamu rpms_db/apr-util-1.5. 2-6.el7.x86_64.rpmdeleting rpms_db/apr-1.4.8-3.el7_4.1.x86_64.rpmrpms_db/sent 862 bajtů  přijatých 105 bajtů  276,29 bajtů/sekcecelková velikost chráněna 147[4715,3] #

Příklad:11) Omezte velikost přenosu souborů (–max-size)

Pokud nechcete přenášet nebo kopírovat velké soubory pomocí rsync, použijte možnost ‚–max-size={specify-size-here}‘ , předpokládejme, že nechceme přenášet soubory, jejichž velikost je větší než 500 kB,

Poznámka:Chcete-li zadat velikost v MB, použijte M a pro GB použijte G.

[[e-mail chráněný] ~]# rsync -avz --max-size='500K' /opt/rpms_db [e-mail chráněný]:/tmp

Příklad:12) Nesynchronizujte/nekopírujte upravený soubor v cíli

Existují některé scénáře, kdy jsme upravili soubory v cíli a nechceme během synchronizace přepsat upravené soubory ze zdroje, takže toho lze snadno dosáhnout pomocí -u možnost v příkazu rsync

[[chráněno e-mailem] ~]# rsync -avzu [chráněno e-mailem]:/opt/techi /home/pkumar/techi[e-mailem chráněno] heslo:přijímání přírůstkových seznamů souborů 37 bajtů  přijato 4 960 bajtů  1 427,71 bajtů/s velikost je 37 771 649  zrychlení je 7 558,87[[email chráněno] ~]#

Příklad:13) Odebrat soubory ze zdroje po synchronizaci (–remove-source-files)

Předpokládejme, že chcete odstranit soubory ze zdroje po dokončení synchronizace pomocí příkazu rsync. V níže uvedeném příkladu složka z místního systému „/home/pkumar/techi.tgz “ je synchronizován se vzdáleným systémem (192.168.1.29), jakmile je synchronizace dokončena, smaže soubor ze zdroje.

[[e-mail chráněný] ~]# rsync --remove-source-files -zvh /home/pkumar/techi.tgz [e-mail chráněný]:/opt[email protected]'s password:techi.tgzsent 597 bajtů  přijato 43 bajtů  182,86 bajtů/sektor celková velikost je 518  zrychlení je 0,81[[e-mail chráněný] ~]#[[chráněný e-mail] ~]# ls -l /home/pkumar/techi.tgzls:nelze získat přístup k /home/pkumar/techi.tgz :Žádný takový soubor nebo adresář [[email protected] ~]#

Příklad:14) Před vlastní synchronizací nasucho spusťte příkaz rsync

Mohou nastat situace, kdy nám nejde o chování příkazu rsync, takže v takových případech je lepší provést suchý běh rsync

[[chráněn e-mailem] ~]# rsync --dry-run --remove-source-files -zvh /home/pkumar/projects.tar  [chráněno e-mailem]:/opt[heslo uživatele chráněné e-mailem:projects .tarsent 51 bajtů  přijato 19 bajtů  7,37 bajtů/sektor celková velikost je 981,24 M  zrychlení je 14 017 682,29 (SUCHÝ PROVOZ)[[e-mail chráněný] ~]#

Příklad:15) Zahrnout a vyloučit soubory během synchronizace s rsync

Existují situace, kdy chceme kopírovat nebo synchronizovat soubory a adresáře určitého typu a chceme vyloučit soubory nebo adresáře určitého typu. Příkaz Rsync podporuje možnosti zahrnutí i vyloučení.

V níže uvedeném příkladu chcete zkopírovat soubory typu pdf a rpm a vyloučit typy souborů png.

[[e-mail chráněný] ~]# rsync -avz -e ssh --include '*.pdf *.rpm' --exclude '*.png' /home/pkumar/techi [e-mail chráněný]:/opt[ e-mailem chráněné heslo]:odesílání přírůstkového souboru listtechi/techi/OpenStack-Networking.pdftechi/httpd-2.4.6-88.el7.centos.x86_64.rpmtechi/httpd-tools-2.4.6-88.el7.centos. x86_64.rpmtechi/postfix-2.10.1-7.el7.x86_64.rpmsent 9 469 912 bajtů 

Příklad:16) Omezte rychlost přenosu dat v rsync (–bwlimit=)

V příkazu rsync můžeme nastavit limit šířky pásma pro přenos dat z jednoho stroje na druhý, použijte ‘–bwlimit= ‘ možnost v příkazu rsync pro omezení rychlosti přenosu dat.

Předpokládejme, že chceme nastavit maximální rychlost přenosu dat (rychlost) na 600 KB/s s rsync, příklad je uveden níže

[[email protected] ~]# rsync -avz --progress --bwlimit=600 /home/pkumar/techi [e-mail chráněný]:/opt[email protected]'s password:sending incremental file listtechi/techi/ OpenStack-Networking.pdf6,153,239 100 %  910,02 kB/s    0:00:06 (xfr#1, to-chk=6/8)techi/httpd-2.4.6-88.el7.centos.x86_64.rpm2,84 100 %  615,28 kB/s    0:00:04 (xfr#2, to-chk=5/8)techi/httpd-tools-2.4.6-88.el7.centos.x86_64.rpm92,504 100 %  507,51 kB s    0:00:00 (xfr#3, to-chk=4/8)techi/pkumar-2.png0 100 %    0,00 kB/s    0:00:00 (xfr#4, to-chk=3/8) techi/pkumar-3.png0 100 %    0,00 kB/s    0:00:00 (xfr#5, to-chk=2/8)techi/pkumar.png0 100 %    0,00 kB/s    0:00:00 (xfr## 6, to-chk=1/8)techi/postfix-2.10.1-7.el7.x86_64.rpm2,558,136 100 %  594,80 kB/s    0:00:04 (xfr#7, to-chk=0/8 )odeslané 9 470 087 bajtů  přijato 153 bajtů  485 653,33 bajtů/sektor celková velikost je 11 647 907  zrychlení je 1,23[[e-mail chráněný] ~]#

Příklad:17) Zobrazit rozdíl v souborech a adresářích mezi zdrojem a cílem

Použijte „-i ” v příkazu rsync pro zobrazení rozdílu v souborech a adresářích mezi zdrojem a cílem. Příklad je uveden níže

[[email protected]teway ~]# rsync -avzi /home/pkumar/techi [email protected]:/opt[email protected]'s password:sending incremental file list.d..t..... . techi/ 

Podle výše uvedeného výstupu příkazu existuje rozdíl v souboru s názvem „projects.txt“ na místě určení. Níže je uveden význam klíčových slov ve výše uvedeném výstupu,

  • d:označuje změnu cílového souboru
  • f:označuje soubor
  • t:označuje změnu časových razítek
  • s:označuje změnu velikosti

To je vše z tohoto tutoriálu, v případě, že tyto příklady porozumíte příkazu rsync efektivněji, podělte se prosím o své názory a komentáře

Přečtěte si také17 užitečných příkazů tar s praktickými příklady v systému Linux

Přečtěte si také :Jak otáčet a komprimovat soubory protokolu v Linuxu pomocí Logrotate


Linux
  1. 12 Užitečné příklady příkazů Wget v Linuxu

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

  3. 14 Užitečné příklady příkazů „cat“ v Linuxu

  1. Příkaz Rsync:20 užitečných příkladů v Linuxu

  2. 20 užitečných příkladů příkazů Docker v Linuxu

  3. Příkaz ls v Linuxu:17 vysvětlení užitečných příkladů

  1. 14 Užitečné příklady příkazů „ls“ v Linuxu

  2. 9 Užitečné příklady dotykových příkazů v Linuxu

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