Ú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: