GNU/Linux >> Znalost Linux >  >> Linux

Jak používat rsync k vyloučení souborů a adresářů v přenosu dat

Úvod

Rsync je užitečný nástroj příkazového řádku Linuxu, který synchronizuje a kopíruje soubory a adresáře. Tento nástroj můžete použít k místní synchronizaci dat mezi adresáři a disky nebo mezi dvěma vzdálenými počítači.

Základní příkazy rsync v Linuxu synchronizují vše z místa, které určíte. V mnoha scénářích zálohování můžete chtít vyloučit konkrétní soubory, adresáře nebo typy souborů.

Postupujte podle příkladů v této příručce a zjistěte, jak vyloučit soubory nebo adresáře pomocí rsync. Uvedeme nejběžnější případy použití vyloučení, abychom pokryli vaše každodenní používání rsync.

Předpoklady

  • Uživatel s sudo nebokořen privilegia
  • Přístup k příkazovému řádku/oknu terminálu
  • Rsync nainstalovaný ve vašem systému

Jak funguje rsync Exclude Option

--exclude pomocí možnosti rsync používá relativní cesty ke zdrojovému adresáři. Připojte --exclude možnost rsync za ním následuje relativní cesta k adresáři nebo souboru(ům).

Základní syntaxe pro možnost vyloučení rsync vypadá takto:

rsync [OPTIONS] --exclude 'file_or_directory' source/ destination/

Nahraďte zdroj/ s názvem adresáře, který chcete použít jako zdroj pro přenos dat do jiného umístění.

Nahraďte destination/ s názvem adresáře rsync použije jako cílové umístění pro vaše data. Pokud adresář neexistuje, rsync vám jej vytvoří a přenese soubory do tohoto adresáře.

Chcete-li zálohovat soubory do vzdáleného umístění, postupujte podle našeho dalšího průvodce, kde se dozvíte, jak kopírovat nebo přenášet soubory pomocí rsync přes SSH.

Vyloučit konkrétní soubor

V níže uvedených příkladech vyloučení rsync použijeme -a (archiv ) a -v (podrobné ) možnosti (-av ). -a volba synchronizuje adresáře rekurzivně, přičemž zachovává oprávnění, symbolické odkazy, vlastnictví a nastavení skupiny. -v flag je volitelný a vypisuje průběh a stav příkazu rsync.

Chcete-li vyloučit soubor při přenosu obsahu složky pomocí rsync, zadejte soubor a relativní cestu.

Například:

rsync -av --exclude 'testfile1.txt' sourcedir/ destinationdir/

Tento příkaz umožňuje zkopírovat soubory do destinationdir z sourcedir but vyloučit testfile1.txt.

Jak můžete vidět ve výstupu,testfile1.txt není na seznamu.

Chcete-li tak učinit, spusťte tento příkaz:

sudo rm -rf destinationdir

Vyloučit konkrétní adresář

Nyní, když víte, jak používat rsync --exclude soubor, použijte nástroj stejným způsobem k vyloučení adresáře.

Zadejte adresář, který chcete vyloučit (místo názvu souboru):

rsync -av --exclude 'dir1' sourcedir/ destinationdir/

Tento příkaz zkopíroval obsah sourcedir do destinationdir a vyloučen adresář1 , jak je vidět na výstupu.

Vyloučit soubory nebo adresáře založené na vzoru

Použijte hvězdičku * (zástupný znak) při definování názvu souboru nebo adresáře, abyste vyloučili vše, co odpovídá vzoru.

Chcete-li vyloučit soubory, které začínají na test , spusťte tento příkaz:

rsync -av --exclude 'test*' sourcedir/ destinationdir/

Každý soubor a adresář, který odpovídá tomuto vzoru, bude z přenosu vyloučen.

Zástupný znak můžete v podobné záležitosti použít také k vyloučení všech adresářů, které končí určitým vzorem .

Spuštěním tohoto příkazu vyloučíte všechny adresáře, které končí číslem 3:

rsync -av --exclude '*3' sourcedir/ destinationdir/

Pomocí hvězdičky před a za vzorem můžete dodatečně upřesnit --exclude kritérium.

Vyloučit konkrétní typ souboru

Nástroj rsync umožňuje vyloučit určité typy souborů při synchronizaci dat. Použijte hvězdičku * následuje přípona typu souboru, který chcete vyloučit.

Můžete například chtít zálohovat adresář, který obsahuje mnoho .iso soubory, které nemusíte zálohovat.

Chcete-li vyloučit konkrétní typ souboru, v tomto případě .iso , spusťte tento příkaz:

rsync -av --exclude '*.iso' sourcedir/ destinationdir/

Výstup ukazuje, že rsync nepřenesl.iso soubory. Do obrázku jsme přidali obsah zdrojového adresáře pro srovnání.

Vyloučit soubory podle velikosti

Během přenosu souborů můžete určit minimální nebo maximální velikost souborů, které chcete vyloučit. Pokud váš zdrojový adresář obsahuje mnoho velkých souborů, které nechcete zálohovat, použijte --max-size=size_in_mb_or_gb volba. Nahraďte size_in_mb_or_gb s požadovanou velikostí.

Například vyloučíte všechny soubory větší než 500 MB, spusťte tento příkaz:

rsync -av --max-size=500m sourcedir/ destinationdir/

Na druhou stranu vyloučení souborů menších než konkrétní velikost , použijte --min-size=size_in_mb_or_gb možnost.

Chcete například přenést adresář s obrázky, ale existuje mnoho souborů miniatur. Pokud jsou všechny vaše obrázky větší než 1 MB, můžete vyloučit všechny soubory menší než tato velikost.

Chcete-li tak učinit, spusťte tento příkaz:

rsync -av --min-size=1m sourcedir/ destinationdir/

Nepoužívat --exclude možnost rsync s při definování minimální nebo maximální velikosti souboru.

Vyloučit více souborů nebo adresářů

Přidat více --exclude možnosti vyloučení více souborů nebo adresářů. Můžete kombinovat libovolný rsync --exclude složka a rsync --exclude soubory příkazy k přenosu pouze dat, která potřebujete. Jakýkoli z příkazů, o kterých jsme dříve hovořili, lze použít na jednom řádku.

Následující příkaz vyloučí všechny soubory s .txt rozšíření a také dir3 a dir4 adresáře:

rsync -av --exclude '*.txt' --exclude 'dir3' --exclude 'dir4' sourcedir/ destinationdir/

Můžete přidat tolik --exclude záznamy, jak potřebujete. Chcete-li zachovat pořádek v příkazu, můžete zadat soubory a adresáře v --exclude možnost pomocí složených závorek. Vzory oddělte čárkou.

Výše uvedený příkaz můžeme například zkrátit tímto způsobem:

rsync -av --exclude={'*.txt','dir3','dir4'} sourcedir/ destinationdir/

Výstup ukazuje, že uvedené soubory a adresáře jsou vyloučeny z přenosu.

Vyloučit soubory a adresáře ze seznamu

Pokud potřebujete vyloučit velké množství různých souborů a adresářů, můžete použít rsync --exclude-from vlajka. Chcete-li tak učinit, vytvořte textový soubor s názvy souborů a adresářů, které chcete vyloučit. Poté předejte název souboru do --exlude-from možnost.

Příkaz vypadá takto:

rsync -av --exclude-from={'list.txt'} sourcedir/ destinationdir/

Nástroj rsync přeskakuje všechny soubory a adresáře, které v souboru uvádíte. Můžete přidat jakýkoli vzor, ​​který jsme použili v této příručce.

Vzorový soubor, který jsme použili ve výše uvedeném příkazu, obsahuje následující vzory:


Linux
  1. Jak používat Netcat k přenosu souborů v systému Linux

  2. Jak přenášet soubory v Linuxu pomocí SCP a Rsync

  3. 6 rsync Příklady k vyloučení více souborů a adresářů pomocí exclude-from

  1. Jak přenášet soubory mezi dvěma počítači pomocí příkazů nc a pv

  2. Jak používat FTP pod Linuxem k přenosu souborů

  3. Jak mohu vyloučit soubory ve výchozím nastavení pomocí rsync?

  1. Jak kopírovat soubory a adresáře v Linuxu

  2. Jak používat rsync k zálohování dat

  3. Jak používat příkaz SFTP k přenosu souborů