Top
Přejít na hlavní obsah
Služby
Návody > Seznam návodů > Jak nastavit rsync zálohování na Ubuntu 18.04

Jak nastavit rsync zálohování na Ubuntu 18.04

05 května 2020

Backup Storage Ubuntu

Rsync (remote sync) je nástroj pro synchronizaci souborů a složek na jednom či více serverech v systému Linux.

Výhodou rsync oproti klasickému „kopírovat a vložit“ je automatická detekce rozdílů mezi složkami nebo soubory. Rsync synchronizuje pouze tyto rozdíly, čímž se značně urychluje proces kopírování ze zdrojové složky do cílové.

V tomto návodu vám ukážeme, jak nainstalovat, nastavit a následně používat rsync v systému Linux Ubuntu 18.04 pro synchroznizaci souborů a složek a také jak naplánovat pravidelné zálohování serveru.

Instalace

Balíčky rsync jsou k dispozici v oficiálním repozitáři Ubuntu. Pro instalaci zadejte příkaz:

$ sudo apt install rsync

Syntax

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

Dostupné možnosti:

  • •   -v: průběžně zobrazuje jednotlivé zkopírované soubory a složky

  • •   -r: pro rekurzivní kopírování složek a jejich obsahu včetně podsložek

  • •   -h: velikost kopírovaných souborů se zobrazí v čitelnějším formátu (místo 14.167.396 bytes, se zobrazí 14.17 Mb)

  • •   -z: pro kompresi kopírovaných dat

  • •   -a: zobrazí původní informace o souboru, například časové razítko, oprávnění, vlastníka apod.

  • •   -u: update – pokud cílový soubor již existuje, kopíruje soubor pouze v případě, že se na cílovém stroji nachází starší verze souboru

  • •   --delete: rsync odstraní z cílové složky soubory, které nejsou ve zdrojové složce

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

  • •   --progress: zobrazí procentuální dokončení procesu kopírování a zbývající čas

  • •   --existing: kopíruje pouze soubory, které již existují v cílové složce

Synchronizace dvou složek na stejném serveru

Kopírování z jedné složky do druhé se provádí příkazem „rsync“ následovaným zdrojovou složkou (složkou, ze které se data kopírují) a cílovou složkou. Bez ohledu na to, zda kopírovaná složka obsahuje další podsložky doporučujeme přidat tag "-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.

Všimněte si rozdílu mezi těmito dvěma příkazy: zadáním "/" po zdrojové složce je systém vyzván ke kopírování souborů obsažených ve složce.

Příkaz bez “/” vyzývá k výběru celé složky a následně vytvoření kopie zdrojové složky v cílové složce.

Kopírování souborů stejného typu

Rsync umožňuje také kopírovat pouze soubory určitého typu definováním názvu či koncovky souboru.

Pokud chcete například kopírovat všechny soubory s koncovkou "pdf", lze tak učinit příkazem:

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

Pomocí "* .pdf" byl zadán příkaz pro kopírování všech souborů s koncovkou ".pdf".

Kopírování souborů mezi dvěma servery na protokolu SSH

Ke kopírování souborů a složek z jednoho serveru na druhý lze využít protokolu SSH. Použití tohoto protokolu zaručuje, že během přenosu budou všechna data šifrována, nikdo je tedy nebude moci přečíst.

Parametr "-e ssh" je následován zdrojovou a cílovou destinací.

$ rsync -e ssh path/source/ user@IP_machine:/path/destination/

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

Kopírování souborů na základě velikosti

Rsync umožňuje také kopírování souborů na základě velikosti, kterou zabírají na disku.

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

Pomocí příkazu výše budou zkopírovány pouze soubory menší než 15 kB.

Větší soubory budou ignorovány.

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

Pomocí příkazu výše budou zkopírovány pouze soubory větší než 20 kB.
Menší soubory budou ignorovány.

Výjimky z kopírování na základě přípony

Pokud si nepřejete kopírovat některé typy souborů, lze je na základě přípony z kopírování vyloučit použitím tagu “--exclude”.

V níže uvedeném příkladu nebudou ze zdrojové do cílové složky zkopírovány soubory s příponou .PDF.

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

Odstranění dat ze zdrojové složky po kopírování

Pomocí rsync lze použít také postupu "vyjmout a vložit". Pomocí příkazu níže budou data zkopírována do cílové složky a následně smazána ze složky zdrojové

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

Nastavení transfer limitu

Pokud kopírujete data po síti, možná se vám bude hodit také možnost nastavit limit rychlosti uploadu. K tomu použijeme tag "--bwlimit = KBPS", kde "KBPS" nahradíme požadovanou hodnotou.

$ rsync --bwlimit=KBPS -r ssh source_path/folder user@IP_receiver:/destination_path

Nahraďte "KBPS" maximální přenosovou rychlostí v KB / s (2048 KB/s = 2MB/s).

Pravidelné a automatické kopírování

Pokud používáte rsync a nechcete příkazy zadávat stále dokola ručně, můžete použít nástroj Cron.

Je součástí Ubuntu 18.04 a umožňuje nastavit různá pravidla pro pravidelné opakování některých příkazů.

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

$ crontab -e

Otevře se textový editor, ve kterém je uvedeno, který příkaz se má pravidelně opakovat. Po nastavení pravidel jej můžete uložit a zavřít.

Jak nastavit crontab

Zápis crontabu musí odpovídat přesné syntaxi a specifikovat 6 parametrů v následujícím pořadí:

 m h dom mon dow command
  • •   m: minuta (0-59)

  • •   h: hodina (0-23)

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

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

  • •   dow: den v týdnu (0:sunday - 6:saturday)

  • •   command: příkaz po spuštění

  •  

Příklady možného nastavení:

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

(každých 30 minut budou všechny ".pdf" soubory ze zdrojové složky zkopírovány do složky cílové)

*/2 * * * * rsync path/source/*.pdf path/destination (všechny .pdf soubory ve zdrojové složce budou zkopírovány do cílové každé 2 minuty)

50 8 * * 1,3 rsync path/source/*.pdf path/destination (všechny .pdf soubory ve zdrojové složce budou kopírovány do cílové složky každé pondělí a středu v 8:50)


 

Po uložení a zavření editoru můžete zkontrolovat seznam naplánovaných úloh:

$ crontab -l

Začněte používat FORPSI Cloud

 ZAČÍT HNED POŽÁDAT O VOUCHER*

(*) FORPSI vám poskytne voucher s kreditem v hodnotě 160 Kč pro cloudové služby

TECHNOLOGIČTÍ PARTNEŘI: