GNU/Linux >> Znalost Linux >  >> Linux

Jak zálohovat soubory a adresáře pomocí Rsync v Linuxu

Hledáte spolehlivé a robustní řešení pro zálohování dat v Linuxu? Rsync mám tě pokryto! Tato příručka vás provede kroky k zálohování souborů a adresářů pomocí Rsync v Linuxu.

1. Úvod

Pokud svá data nikdy nezálohujete, protože vše bude fungovat dobře, pak bych řekl, že se mýlíte.

Zeptejte se všech uživatelů Linuxu tam venku, budou sdílet bolest, že nebudou zálohovat svůj systém/data. Jako nováček jsem tuto chybu jednou udělal a naučil jsem se důležitost zálohování.

Existuje spousta nástrojů pro zálohování pro platformy Linux a Unix. Rsync (Remote Sync) je považován za jeden z nejpoužívanějších a nejdůvěryhodnějších zálohovacích nástrojů.

2. Zálohujte soubory a adresáře pomocí Rsync v Linux

Pomocí Rsync můžeme,

  1. zálohujte celý systém,
  2. nebo zálohujte jednotlivé soubory a adresáře.

V prvním typu zkopírujeme celý souborový systém Linuxu na externí zařízení nebo síťové sdílení. Tuto kopii můžete použít k uvedení stroje do původního stavu v případě jakéhokoli selhání systému.

Druhým typem je zálohování nebo kopírování pouze vybraných souborů a adresářů. Můžete například zkopírovat důležité konfigurační soubory nebo celý $HOME adresář a vylučte vše ostatní.

Již jsme vám ukázali, jak zálohovat celý systém Linux pomocí Rsync . Tato příručka se zaměřuje na selektivní zálohování souborů a adresářů pomocí Rsync v Linuxu.

2.1. Výběr paměťového média

V prvním kroku se rozhodněte, kam budete svá data zálohovat. Je to velmi důležité!

Svá data můžete zálohovat na externí pevný disk, cloudové úložiště nebo úložiště připojené k síti (NAS). Jednoduchou a levnou možností je použití externího pevného disku.

Pokud máte ve svém počítači dva samostatné disky, můžete k zálohování dat použít kterýkoli z nich, protože oba nebudou selhat najednou.

Poznámka:

Pokud to se zálohováním myslíte vážně, neukládejte zálohu na stejnou jednotku samotnou. Vždy používejte externí disk, sekundární disk, síťové sdílení a cloudové úložiště atd.

Pro účely předvedení budu používat 1 TB externí pevný disk v této příručce.

2.3. Zálohujte soubory pomocí Rsync

Obecná syntaxe Rsync pro kopírování dat z jednoho umístění do druhého je:

rsync [OPTION…] SRC… [DEST]

Tady,

  • OPTION - seznam možností Rsync
  • SRC - Zdrojový soubor/adresář
  • DEST - Cíl

Zde je jednoduchý příkaz Rsync pro zálohování nebo kopírování souboru z jednoho umístění do druhého v samotném místním systému.

$ rsync src_file dest_file

Příklady:

$ rsync -auv ostechnix.txt ostechnix-bak.txt

Tady,

  • -a - Režim archivace (zachování vlastností souboru a symbolických odkazů)
  • -u - Přeskočit soubory, které jsou na přijímající straně novější.
  • -v - Podrobný režim

Výše uvedený příkaz uloží záložní soubor ostechnix-bak.txt soubor v aktuálním adresáři. Můžete také zadat jiný cílový adresář, jak je uvedeno níže:

$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt

Pokud neurčíte cílový název souboru, Rsync použije stejný název zdrojového souboru jako cílový soubor.

Ukládání záložních souborů na stejný disk není ve skutečnosti záloha. Zálohovaná data musíte uložit na externí disk nebo sdílenou síť nebo alespoň do jiného oddílu.

Například následující příkaz zálohuje soubor na můj externí disk:

$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/

Rsync má mnoho pokročilých možností. Podívejte se na následující příklad:

$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/

Tento příkaz přenese soubor v archivním (pro zachování atributů) a komprimovaném (zazipovaném) režimu s podrobným a člověkem čitelným ukazatelem průběhu.

2.4. Zálohujte adresáře pomocí Rsync

Místo zálohování jednoho souboru můžete všechny soubory umístit do adresáře a zálohovat tento adresář pomocí Rsync. To se hodí při zrcadlení a synchronizaci dat.

Pro účely této příručky vám ukážu, jak zálohovat adresář HOME pomocí Rsync.

2.4.1. Zálohujte adresář HOME pomocí Rsync

Rsync je nástroj pro přírůstkové kopírování souborů. Význam – synchronizuje pouze nová nebo upravená data ve zdrojovém adresáři (tj. /home v našem případě) namísto opětovné synchronizace všech dat od začátku.

Chcete-li zálohovat můj $HOME adresář na můj externí disk, použil jsem následující příkaz:

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Pojďme rozebrat výše uvedený příkaz a uvidíme, co jednotlivé možnosti dělají.

  • Příznak -a je kombinací mnoha možností. Tento příznak se stará o rekurzivní kopírování a zachování atributů, jako je oprávnění k souboru/adresáři, vlastník atd.
  • Příznak -v povolí podrobný režim, který při spuštění příkazu rsync poskytne terminálu více protokolů.
  • Příznak -x omezí rsync na synchronizaci dat v rámci hranic systému souborů. Pokud jste do svého domovského adresáře připojili jakýkoli souborový systém, bude během operace synchronizace přeskočen.
  • Příznak -P je kombinací dvou vlajek. Zobrazí průběh každé synchronizace a ponechá částečně přenesené soubory.
  • Příznak --delete odstraní všechny adresáře a soubory, které nejsou dostupné ve zdroji, ale jsou dostupné v cíli. Musíte být velmi opatrní při používání vlajky.
  • Příznak --exclude-from=File přijímá soubor jako argument. Tento soubor obsahuje seznam souborů a adresářů, které budou rsync ignorovány.

Vytvořil jsem soubor s názvem ignore_list.txt který obsahuje soubory a adresáře, které je třeba vyloučit.

Ve výše uvedeném příkazu tato část --exclude-from=/home/karthick/Work/Backup/ignore_list.txt definuje seznam vyloučení.

Zde je obsah ignore_list.txt soubor:

Seznam položek, které mají být vyloučeny z výše uvedeného obrázku, je můj osobní výběr a pro vás se může lišit. Upravte parametr podle svého prostředí.

Poslední dvě části výše uvedeného příkazu Rsync jsou zdrojové a cílové umístění. V mém případě je zdrojem můj adresář $HOME a cílem je můj externí disk. Nahraďte zdroj a cíl podle svého prostředí.

Pozor: Pokud chcete znát bod připojení pro váš externí disk, spusťte lsblk příkaz.

$ lsblk

sdb             8:16   0 931.5G  0 disk  
└─sdb1          8:17   0 931.5G  0 part  /media/karthick/My Passport

Před spuštěním rsync poprvé, vždy se doporučuje provést spuštění nasucho . Suchý běh bude simulovat, jaké změny budou provedeny. Použijte stejný příkaz, ale s -n vlajka.

$ rsync -avxP -n --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Ukázkový výstup:

 sending incremental file list
 karthick/
 karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)
...
...
...
sent 88,424 bytes  received 9,459 bytes  195,766.00 bytes/sectotal size is 3,028,935,519  speedup is 30,944.45 (DRY RUN)

Pokud vše proběhne tak, jak má, odeberte -n flag a spusťte příkaz k zálohování dat.

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

V závislosti na velikosti bude první spuštění nějakou dobu trvat.

sending incremental file list
karthick/
karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)…
…
…
sent 3,029,863,865 bytes  received 51,335 bytes  53,626,817.70 bytes/sec
total size is 3,028,934,994  speedup is 1.00

2.4.2. Vytvořte zálohovací skript

Zapamatovat si dlouhý příkaz může být těžké. Chcete-li se vyhnout psaní dlouhého rsync příkazu v terminálu, můžete vytvořit jednoduchý BASH skript a zavolat jej, kdykoli budete chtít spustit zálohování.

Vytvořte skript s názvem home_dir_backup.sh :

$ nano home_dir_backup.sh

Přidejte následující řádky:

#!/usr/bin/env bash

# PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE..
# REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT.

rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Přidejte, odeberte nebo změňte možnosti Rsync podle vašich požadavků. Změňte také zdrojovou a cílovou cestu za vlastní. Uložte a zavřete soubor.

Udělejte skript spustitelným:

$ chmod +x <path-to-home_dir_backup.sh>

Nyní spusťte skript kdykoli a spusťte zálohu adresáře $HOME:

$ ./path-to-home_dir_backup.sh

Pro snadné zapamatování použijte kratší název skriptu.

Můžete také vytvořit měkký odkaz pro soubor skriptu v /usr/bin nebo libovolné adresáře specifické pro uživatele, které jsou dostupné v $PATH proměnná.

2.4.3. Vytvořit alias

Dalším způsobem, jak se vyhnout psaní dlouhých příkazů, je použití aliasů .

Upravte svůj ~/.bashrc soubor a na konec přidejte následující řádek:

alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /
media/karthick/"My Passport"/"

Zdroj bashrc souboru, aby se změny projevily okamžitě:

$ source ~/.bashrc

Nyní jednoduše spusťte následující příkaz k zálohování adresáře $HOME:

$ backup

Je na vás, abyste se rozhodli, co chcete používat. Buď můžete vytvořit alias, nebo vytvořit skript a spustit rsync spuštěním skriptu. V mém případě jsem vytvořil skript a poté vytvořil alias pro tento skript.

3. Naplánujte zálohování

Můžete použít cron plánovač pro plánování úloh zálohování tak, aby se spouštěly v určitou dobu v určitý den.

Upravte úlohy cronu aktuálního uživatele pomocí příkazu

$ crontab -e

Definujte plán zálohování. Řekněme například, že chcete spustit zálohování každý den ve 3:00 , použijte následující řádek:

0 3 * * * <rsync-command-to-execute>

V závislosti na vašich požadavcích můžete plánovat denní, týdenní nebo měsíční úlohy.

Pokud jste v Cron Jobs noví, sestavili jsme seznam užitečných příkladů úloh cron pro plánování úloh v Linuxu. Další podrobnosti o použití cronu naleznete v následující příručce.

  • Příručka Cron Jobs pro začátečníky

4. Grafická rozhraní Rsync

Pokud jste v Linuxu nováčkem, může být pro vás obtížné porozumět všem možnostem a příznakům Rsync. Bez obav! Pro Rsync je k dispozici několik grafických frontendových nástrojů. Jedním z takových nástrojů je Grsync .

Grsync je jednoduché grafické uživatelské rozhraní pro Rsync. Nemusíte si pamatovat žádné příkazy Rsync a jeho možnosti. Vše můžete dělat pomocí snadno použitelného GUI.

Další podrobnosti naleznete v následující příručce:

  • Grsync – jednoduché grafické rozhraní pro Rsync

5. Závěr

V této příručce jsme se podívali na to, jak zálohovat soubory a adresáře pomocí Rsync v Linuxu. Jak můžete vidět, kopírování souborů a adresářů pomocí Rsync je velmi snadné!

Také jsme vám ukázali, jak vytvořit zálohu vašeho domovského adresáře pomocí příkazu rsync a některé způsoby, jak to spustit a naplánovat.

Tuto metodu lze také použít pro libovolnou adresářovou nebo souborovou strukturu v Linuxu pro zálohování dat. Pokud si myslíte, že máte lepší řešení zálohování, rádi bychom to od vás slyšeli prostřednictvím sekce komentářů níže.

Související čtení:

  • Obnovit částečně přenesené soubory přes SSH pomocí Rsync
  • Jak zálohovat a obnovovat soubory pomocí Deja Dup v Linuxu
  • Jak nastavit záložní server pomocí Rsnapshot
  • Jak synchronizovat soubory s Unison v systému Linux
  • Jak synchronizovat místní a vzdálené adresáře v systému Linux
  • Jak synchronizovat soubory a adresáře pomocí Zaloha.sh
  • CYA – Nástroj Snímek a obnovení systému pro Linux
  • Restic – rychlá, bezpečná a efektivní zálohovací aplikace

Linux
  1. Jak archivovat soubory a adresáře v Linuxu [část 2]

  2. Jak archivovat soubory a adresáře v Linuxu [část 1]

  3. Jak najít a odstranit prázdné adresáře a soubory v Linuxu

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

  2. Jak zálohovat celý systém Linux pomocí Rsync

  3. Jak komprimovat a extrahovat soubory a adresáře v Linuxu pomocí gzip a bzip2

  1. Jak odstranit adresáře a soubory pomocí Linuxu

  2. Jak odstranit soubory a adresáře pomocí příkazového řádku systému Linux

  3. Jak přejmenovat soubory a adresáře v Linuxu