GNU/Linux >> Znalost Linux >  >> Linux

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

Úvod

Rsync neboli Remote Sync je bezplatný nástroj příkazového řádku, který vám umožňuje přenášet soubory a adresáře do místních a vzdálených míst. Rsync se používá pro zrcadlení, provádění zálohování nebo migraci dat na jiné servery.

Tento nástroj je rychlý a efektivní, kopíruje pouze změny ze zdroje a nabízí možnosti přizpůsobení.

Podle tohoto návodu se dozvíte, jak používat rsync s 20 příkladů příkazů k pokrytí většiny případů použití v Linuxu.

Předpoklady

  • Uživatel s sudo nebokořen privilegia
  • Přístup k terminálu/příkazovému řádku
  • Přístup SSH pro vzdálené příklady rsync

Syntaxe příkazu Rsync

Syntaxe pro rsync příkaz se mění v závislosti na použití nástroje. Všechny scénáře pokryjeme v následujících příkladech. Syntaxe Rsync ve své nejzákladnější podobě vypadá takto:

rsync options SOURCE DESTINATION

Vzdálené přenosy dat vyžadují zadání adresy hostitele, ale o tom později.

Možnosti Rsync

Nástroj rsync přichází s mnoha možnostmi. Můžete zadat rsync ve svém terminálu a získejte všechny podrobnosti. Uvedeme některé z nejběžnějších možností rsync.

Patří mezi ně:

-r Umožňuje rekurzivně synchronizovat data, ale nezachovává vlastnictví pro uživatele a skupiny, oprávnění, časová razítka nebo symbolické odkazy.
-a Režim archivu se chová jako rekurzivní režim, ale zachovává všechna oprávnění k souborům, symbolické odkazy, vlastnictví souborů atd.
-z Používá se ke kompresi dat během přenosů za účelem úspory místa.
-b Během synchronizace dat provede zálohu.
-h Zobrazuje čísla ve výstupu ve formátu čitelném pro člověka.
-n Probíhá nasucho. Používá se pro testování před provedením skutečné synchronizace.
-e Instruuje rsync, aby používal protokol SSH pro vzdálené přenosy.
-progress Zobrazuje průběh přenosu během synchronizace.
-v Podrobný výstup. Zobrazí podrobnosti o převodu.
-q Používá se k potlačení výstupu pro příkaz a možnosti rsync.

Příklady příkazů Rsync

Rsync je všestranný synchronizační nástroj, který si můžete přizpůsobit tak, aby vyhovoval vašemu konkrétnímu použití. V této příručce budeme používat archiv (-a ) a podrobné (-v ) možnosti v případě potřeby.

Prohlédněte si níže uvedené příklady rsync, které pokrývají většinu použití rsync.

1. Zkopírujte jeden soubor lokálně

Chcete-li zkopírovat jeden soubor do jiného adresáře na místním počítači, zadejte úplnou cestu ke zdrojovému souboru a poté cílový cíl.

Například:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/rsync/

Příkaz přenese sample.txt soubor do rsync adresář. Pokud cílový adresář neexistuje, přidejte na konec lomítko a rsync jej vytvoří, jako je tomu v našem příkladu.

Pokud chcete zkopírovat soubor z aktuálního pracovního adresáře, můžete zadat název souboru, nikoli úplnou cestu.

2. Kopírovat více souborů lokálně

Chcete-li kopírovat více souborů pomocí rsync, přidejte úplné cesty ke zdrojovým souborům:

rsync -v /home/test/Desktop/sample.txt /home/test/Desktop/sample2rs.txt /home/test/Desktop/rsync

Tuto metodu byste měli použít pro malý počet souborů. Pokud je seznam větší, můžete se podívat na --exclude možnost.

3. Zkopírujte adresář a všechny podadresáře lokálně (kopírujte soubory a adresáře rekurzivně)

Chcete-li zkopírovat adresář a jeho obsah do jiného umístění na vašem počítači, použijte -a nebo -r volba. Použili jsme archiv možnost :

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync

Výše uvedený příklad ukazuje, jak zkopírovat Linux do adresáře rsync adresář. Všimněte si, že jsme nepoužili koncové lomítko za Linuxem . Nástroj rsync tedy vytvořil Linux adresář a jeho obsah v rsync adresář.

4. Zkopírujte soubor nebo adresář z místního do vzdáleného počítače

Chcete-li zkopírovat adresář /home/test/Desktop/Linux na /home/test/Desktop/rsync na vzdáleném počítači musíte zadat IP adresu cíle.

Přidejte IP adresu a cíl za zdrojový adresář. Nezapomeňte uvést dvojtečku (: ) za IP adresou vzdáleného hostitele, bez mezer před cílem.

Příkaz vypadá takto:

rsync -av /home/test/Desktop/Linux 192.168.56.100:/home/test/Desktop/rsync

Chcete-li pokračovat, zadejte heslo aktuálního uživatele. Pokud chcete pro vzdálené připojení použít jiný účet, zadejte jej před IP adresu:

rsync -a /home/test/Desktop/Linux [email protected]:/home/test/Desktop/rsync

Chcete-li zkopírovat jeden soubor do vzdáleného hostitele, zadejte úplnou cestu k souboru a cíl.

Například:

rsync -av /home/test/Desktop/sample_file.txt 192.168.56.100:/home/test/Desktop/rsync

5. Zkopírujte více souborů nebo adresářů z místního do vzdáleného počítače

Podobně jako při místním kopírování dat, uveďte více souborů nebo více cest k adresářům, které chcete zkopírovat na vzdálený server. Postupujte podle stejné syntaxe jako při kopírování jednoho souboru nebo adresáře.

Například:

rsync -av /home/test/Desktop/Linux/ /home/test/Music 192.168.56.100:/home/test/Desktop/rsync

6. Zadejte protokol rsync pro vzdálené přenosy

Nástroj rsync lze zadat pomocí -e možnost pro použití specifického protokolu pro přenos souborů. Chcete-li použít Rsync přes SSH ke vzdálenému přenosu souborů, připojte -e ssh na rsync příkaz.

Například k přenosu souboru sample.txt z vaší plochy na plochu vzdáleného počítače:

rsync -e ssh /home/test/Desktop/sample.txt 192.168.56.100:/home/test/Desktop

7. Zkopírujte soubor nebo adresář ze vzdáleného do místního počítače

Rsync podporuje přenos souborů ze vzdáleného serveru na váš místní počítač.

Chcete-li stáhnout adresář ze serveru, zadejte jeho IP adresu před zdrojem.

Například:

rsync -av 192.168.56.100:/home/test/Desktop/DirM /home/test/Desktop

Tento příkaz zkopíroval DirM adresář z 192.168.56.100 do /home/test/Desktop na místním serveru.

Chcete-li zkopírovat konkrétní soubor ze vzdáleného hostitele, zadejte úplnou cestu ke zdrojovému souboru a cíl na místním počítači. Například:

rsync -v 192.168.56.100:/home/test/Desktop/testfile.txt /home/test/Desktop

8. Zkopírujte více souborů nebo adresářů z místního do vzdáleného počítače

Chcete-li přenést více souborů nebo více adresářů ze vzdáleného serveru, uveďte cesty pomocí složených závorek za IP adresou serveru. Cesty oddělte čárkou.

Například:

rsync -av 192.168.56.100:{/home/test/Desktop/DirM,/home/test/Desktop/Dir1} /home/test/rsync

Totéž platí pro soubory. Uveďte do složených závorek tolik souborů, kolik potřebujete.

9. Zobrazit průběh rsync během přenosu dat

Při provádění zálohování velkých dat můžete chtít zobrazit průběh přenosu.

Přidejte --progress příznak do rsync pro zobrazení množství přenesených dat, přenosové rychlosti a zbývajícího času.

Například pro zálohování Dir1 na vzdálený server a zobrazit průběh, zadejte:

rsync -av --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

10. Odstraňte neexistující zdrojový soubor nebo adresář z cíle

Použijte --delete možnost synchronizovat zdroj a cíl.

Tato možnost říká rsync, aby odstranil jakýkoli soubor nebo adresář v cíli, pokud jej zdroj nemá.

rsync -av --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

11. Smazat zdrojové soubory po přenosu

V některých scénářích můžete chtít po přenosu odstranit zdrojové soubory. Můžete například přesouvat týdenní zálohu na nový server. Po dokončení přenosu již nepotřebujete zdrojové soubory na starém serveru.

V takovém případě použijte --remove-source-files flag pro smazání vámi zadaného zdrojového souboru.

Tento příkaz například přenese záložní soubor weekly.zip a poté jej odstraní ze zdroje:

rsync -v --remove-source-files /home/test/backup/weekly.zip 192.168.56.100:/home/test/Desktop/rsync/

12. Rsync Dry Run

Rsync je výkonný synchronizační nástroj. Vzhledem k tomu, že tento nástroj umožňuje kopírovat a mazat data, doporučujeme vám nejprve provést zkušební provoz a vyzkoušet, zda rsync dělá to, co jste zamýšleli.

Možnost suchého běhu je zvláště užitečná, když chcete smazat soubory. Chcete-li provést suché spuštění, použijte --dry-run a postupujte podle běžné syntaxe rsync.

Například:

rsync -av --dry-run --delete /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync

Výstup vypadá stejně, jako když skutečně synchronizujete soubory. Tato časová data však nebudou synchronizována. Aby se potvrdilo, že proběhl test, a nikoli skutečný přenos, terminál zobrazí ve spodní části (DRY RUN).

13. Nastavte maximální velikost souboru pro přenos

Chcete-li určit maximální velikost souboru, který rsync přenese, použijte --max-size=add_size .

Chcete-li například přenést soubory ne větší než 500 kB, použijte tento příkaz:

rsync -av --max-size=500k /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

14. Nastavte minimální velikost souboru pro přenos

Použijte --min-size=add_size s rsync, když nechcete přenášet soubory menší než zadaná velikost. Tato možnost je užitečná, například když chcete přeskočit malé soubory protokolu nebo miniatur.

Chcete-li přeskočit jakýkoli soubor menší než 10 kB, spusťte tento příkaz:

rsync -av --min-size=10k /home/test/Desktop/ 192.168.56.100:/home/test/Desktop/rsync/

15. Nastavte limit šířky pásma rsync

Pokud chcete určit limit šířky pásma během přenosu dat mezi počítači, použijte --bwlimit=KB/s .

Tato možnost je užitečná, když nechcete zahlcovat propustnost sítě.

Chcete-li nastavit maximální přenosovou rychlost na 50 KB/s, zadejte:

rsync -av --bwlimit=50 --progress /home/test/Desktop/Dir1 192.168.56.100:/home/test/Desktop/rsync/

Použili jsme také --progress možnost demonstrovat použití --bwlimit .

16. Kopírovat konkrétní typ souboru

Pomocí rsync můžete zkopírovat pouze určitý typ souboru. Chcete-li to provést, použijte hvězdičku (* ) místo názvu souboru a přidejte příponu.

Chcete-li například zkopírovat pouze soubory .txt, zadejte:

rsync -v /home/test/Documents/*.txt /home/test/Desktop/rsync/

Tento rsync příkaz přenese všechny textové soubory z Dokumentů do adresáře rsync adresář na ploše.

17. Kopírovat strukturu adresáře, ale přeskočit soubory

Rsync vám umožňuje přenést pouze adresářovou strukturu, pokud nepotřebujete soubory na jiném místě.

Chcete-li to provést, přidejte -f"+ */" -f"- *" před zdrojovým adresářem.

Chcete-li například zkopírovat strukturu Linuxu do adresáře Dokumenty , zadejte:

rsync -av -f"+ */" -f"- *"  /home/test/Desktop/Linux /home/test/Documents

18. Přidat datumové razítko k názvu adresáře

K názvu adresáře můžete snadno přidat datum, pokud chcete k převodům přidat datum.

Připojte $(date +%Y-%m-%d) na název cílového adresáře, který chcete vytvořit. Tato možnost je užitečná, když chcete mít přehled o tom, kdy proběhly přenosy, aniž byste museli otevírat vlastnosti adresáře.

Například:

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync$(date +%Y-%m-%d)

19. Nekopírovat zdrojový soubor, pokud je změněn stejný cílový soubor

Pokud synchronizujete dva adresáře, rsync nezkopíruje soubor, pokud stejný v cíli existuje.

Někdy se může stát, že upravíte soubor v cílovém umístění a nechcete, aby jej rsync přepsal.

Chcete-li se vyhnout přepsání upravených cílových souborů, použijte -u možnost.

Například:

rsync -avu /home/test/Desktop/Linux/ /home/test/Desktop/rsync

20. Zobrazit rozdíl mezi zdrojovým a cílovým souborem

Když začnete přenášet data, můžete použít -i příznak s rsync pro kontrolu, zda existuje rozdíl mezi zdrojem a cílem.

Například:

rsync -avi /home/test/Desktop/Linux/ /home/test/Desktop/rsync

Výše uvedený příklad ukazuje sample2rs.txt soubor v cíli chybí.

Možná písmena ve výstupu jsou:

  • f znamená soubor
  • d ukazuje, o jaký cílový soubor se jedná
  • t ukazuje, že se časové razítko změnilo
  • s ukazuje, že se velikost změnila

Linux
  1. Linuxový příkaz cp

  2. 7 Příklady příkazů Linux df

  3. 8 Příklady příkazů Linux TR

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

  2. Příklady příkazů rm v Linuxu

  3. Příklady příkazů ps v Linuxu

  1. sa Příklady příkazů v Linuxu

  2. w Příklady příkazů v Linuxu

  3. Příklady příkazů ac v Linuxu