GNU/Linux >> Znalost Linux >  >> Linux

Jak nakonfigurovat zálohu pomocí rsync na Ubuntu 18.04

Rsync (vzdálená synchronizace) je nástroj pro kopírování a synchronizaci souborů a složek na stejném serveru nebo mezi různými počítači v systému Linux.

To, co odlišuje Rsync od klasického „kopírovat a vložit“, je to, že tento nástroj automaticky rozpozná, které dokumenty se mezi dvěma složkami liší, aby se urychlil proces kopírování ze zdrojové složky do cíle.

P>

V tomto článku se dozvíte, jak nainstalovat, nakonfigurovat a používat Rsync na Linuxu Ubuntu 18.04, abyste mohli synchronizovat soubory a složky a naplánovat pravidelné zálohování vašeho serveru.

Instalace

Balíčky rsync jsou již přítomny v oficiálním úložišti Ubuntu. Chcete-li jej nainstalovat, zadejte:

$ sudo apt install rsync

Syntaxe

$ rsync options /path/source/ /path/destination/

Dostupné možnosti jsou:

  • -v:zkopírované soubory a složky se zobrazí v shellu

  • -r:kopírování složek a jejich obsahu

  • -h:místo zobrazení velikosti zkopírovaných souborů v bajtech se zobrazí snadno čitelný formát (namísto 14 167 396 bajtů , bude vidět 14,17 Mb)

  • -z:ke kompresi přenesených dat

  • -a:zobrazuje původní informace o souboru, jako je časové razítko, oprávnění, vlastník atd.

  • -u:při kopírování,

  • --delete:rsync odstraní soubory v cílové složce, které se nenacházejí ve zdrojové složce.

  • --exclude:určité soubory nebo složky budou při kopírování ignorovány.

  • --progress:zobrazuje procento procesu kopírování a zbývající čas.

  • --existující:budou zkopírovány pouze soubory, které již v cílové složce existují.

Synchronizace dvou složek na stejném počítači

Kopírování z jedné složky do druhé se provádí příkazem "rsync" následovaným zdrojovou složkou (ze které se položky kopírují) a cílovou složkou. Bez ohledu na to, že složka ke kopírování obsahuje složky uvnitř , je vhodné přidat značku ke značce "-r":

 $ rsync -r path/source path/destination

Celá "zdrojová" složka se zkopíruje do "cílové" složky.

 $ rsync -r ~/source/ ~/destination

Obsah "zdrojové" složky se zkopíruje do "cílové" složky.

Pozor na rozdíl mezi těmito dvěma příkazy:napsáním "/" za zdrojovou složku je systému řečeno, aby zkopíroval soubory obsažené ve složce.

Nezadání „/“ znamená výběr celé složky a následně vytvoření kopie zdrojové složky v cílové složce.

Kopírování souborů jednoho formátu

Rsync také umožňuje kopírování pouze určitých typů souborů zadáním formátu nebo názvu.

Za předpokladu, že soubory jsou ve formátu „txt“, lze všechny soubory v tomto formátu zkopírovat zadáním:

$ rsync path/source_folder/*.txt path/destination_folder

S "* .txt" jste výslovně požádali o kopii "všech souborů .pdf".

Kopírování souborů na protokolu SSH mezi dvěma počítači

Protokol SSH můžete také použít ke kopírování souborů a složek z počítače do jiného. Použití tohoto protokolu zaručuje, že během přenosu jsou všechny soubory zašifrovány, a proto je nikdo nebude moci číst.

Příkaz vyžaduje volbu "-e ssh" následovanou zdrojem a cílem kopie.

$ rsync -r ssh path/source/ [email protected]_machine:/path/destination/

Bude vyžadováno heslo uživatele přistupujícího k cílovému počítači.

Kopírování souborů podle velikosti

Rsync filtruje soubory ke kopírování také podle velikosti, kterou zabírají na disku.

$ rsync --max-size=15k path/source_folder/*.* path/destination_folder/*.*

Budou zkopírovány pouze soubory menší než 15 kB.

Větší soubory budou ignorovány.

$ rsync --min-size=20k ~/source_folder/*.* ~/destination_folder/*.*

Budou zkopírovány pouze soubory větší než 20 kb.
Menší soubory budou ignorovány.

Vyloučení souborů z kopírování na základě přípony

Pokud nechcete kopírovat některé typy souborů, můžete pomocí značky „--exclude“ vyloučit některé soubory z kopírování na základě přípony.

V níže uvedeném příkladu nebudou soubory ve formátu .PDF zkopírovány ze složky „source“ do složky „destination“.

$ rsync -r --exclude="*.pdf" path/source_folder/ path/destination_folder

Odebrání obsahu ze zdrojové složky po přenosu

Podobně koncept "vyjmout a vložit", pomocí rsync lze soubory přesunout ze zdrojové složky do cílové složky. V tomto případě jsou soubory zkopírovány do cílové složky a poté odstraněny ze zdrojové složky.

$ rsync -r --remove-source-files path/source_folder path/destination_folder

Nastavení limitu přenosové rychlosti

V případě kopírování přes síť bude možná nutné nastavit limit rychlosti odesílání souborů. V tomto případě použijte značku "--bwlimit =KBPS" a nahraďte "KBPS" požadovanou přenosovou rychlostí.

$ rsync --bwlimit=KBPS -r ssh source_path/folder [email protected]_receiver:/destination_path

Nahraďte "KBPS" hodnotou maximální přenosové rychlosti vyjádřenou v KB/s (2048 KB/s =2MB/s)

Vytváření pravidelných a automatických kopií

V případě, že používáte rsync k vytvoření zálohy, ale nechcete pokaždé zadávat příkazy, je tu pro vás ideální nástroj:Cron.

Tato služba, která je již k dispozici v Ubuntu 18.04, umožňuje nastavit některá "pravidla" pro periodické opakování některých příkazů.

Chcete-li začít vytvářet pravidla a poté nastavit proces automatického kopírování, zadejte:

$ crontab -e

Otevře se textový editor, ve kterém určíte, který příkaz se má pravidelně opakovat. Jakmile nastavíte pravidla, uložte je a zavřete.

Jak nakonfigurovat crontab

Psaní crontab se musí řídit přesnou syntaxí s uvedením 6 uspořádaných parametrů:

 m h dom mon dow command
  • m:minuty (0–59)

  • h:hodiny (0–23)

  • dom:den v měsíci (1-31)

  • pon:měsíc (1-12)

  • dow:den v týdnu (0:neděle – 6:sobota)

  • příkaz:příkaz k provedení

    Příklady možných konfigurací:

     30 * * * * rsync path/source/*.pdf path/destination

    (každý měsíc, každý den a každou hodinu po 30 minutách budou všechny soubory „.pdf“ ve složce „source“ zkopírovány do složky „destination“)

    */2 * * * * rsync cesta/zdroj/*.pdf cesta/cíl (všechny soubory .pdf přítomné ve složce „source“ ve složce „destination“ jsou kopírovány každý den v měsíci, každé 2 minuty)

    50 8 * * 1,3 rsync cesta/zdroj/*.pdf cesta/cíl (příkaz pro zkopírování souborů .pdf ve složce „source“ v „destination“ složka se spouští od pondělí do středy v 8:50)

    Po uložení a zavření editoru zobrazíte seznam crontabů typu:

    $ crontab -l

    Linux
    1. Jak odstranit všechny soubory s konkrétní příponou v konkrétní složce?

    2. Jak nakonfigurovat bránu firewall s UFW na Ubuntu 18.04

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

    1. Jak selektivně umlčet Rsync?

    2. Jak zálohovat telefon Ubuntu?

    3. Jak zkopíruji složku se soubory do jiné složky v Unixu/Linuxu?

    1. Jak přenášet soubory pomocí Rsync přes SSH

    2. Jak vyloučit soubory a adresáře pomocí Rsync

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