GNU/Linux >> Znalost Linux >  >> Linux

Jak zálohovat a obnovovat data pomocí Restic v Linuxu

Tato příručka vysvětluje, co je Restic, jak nainstalovat Restic v různých distribucích Linuxu a nakonec, jak zálohovat a obnovovat data pomocí Restic v operačních systémech Linux.

Restic – rychlá, bezpečná a efektivní zálohovací aplikace

Restic je rychlý, open source, bezpečný a multiplatformní zálohovací program. Umožňuje uložit více revizí souborů a adresářů do šifrovaného úložiště uloženého na různých backendech.

Restic používá kryptografii k zajištění důvěrnosti a integrity vašich dat. Šifruje data pomocí AES-256 v režimu čítače a ověřte jej pomocí Poly1305-AES ověřovací kód kryptografické zprávy.

Zálohování a obnova dat pomocí Restic je snadná a velmi rychlá! Přenese pouze upravené soubory (přírůstková záloha) stejně jako Rsync .

Pomocí Restic můžeme snadno zálohovat soubory a adresáře na místní disk nebo vzdálený systém nebo cloudové úložiště. Restic podporuje populární backendy cloudového úložiště, jako je AWS, Azure, BackBlaze, Google Cloud, OpenStack a několik dalších.

Restic se píše pomocí Go programovací jazyk a jeho zdrojový kód je volně dostupný na GitHubu. Jedná se o multiplatformní zálohovací aplikaci. Podporuje GNU/Linux, macOS, FreeBSD, openBSD a Microsoft Windows.

Nainstalujte Restic v Linuxu

Restic je balíček pro oblíbené operační systémy Linux.

Instalace Restic v Alpine Linux:

$ sudo apk add restic

Instalace Restic v Arch Linux, EndeavourOS, Manjaro Linux:

Restic je k dispozici ve výchozích úložištích Arch Linuxu. Ujistěte se, že [Community] úložiště je povoleno a nainstalujte Restic v Arch Linuxu a jeho variantách, jako je EndeavourOS, Manjaro Linux pomocí Pacmana jak je uvedeno níže.

$ sudo pacman -S restic

Instalovat Restic z AUR:

Restic je k dispozici také v AUR. Můžete jej tedy nainstalovat pomocí jakýchkoli pomocníků AUR, jako je Paru nebo Ano , v systémech založených na Arch.

$ paru -S restic-git

Nebo,

$ yay -S restic-git

Nainstalujte Restic v Debianu, Ubuntu, Linux Mintu, Pop_OS!:

$ sudo apt-get install restic

Instalace Restic ve Fedoře:

$ sudo dnf install restic

Instalujte Restic v RHEL, CentOS, AlmaLinux a Rocky Linux:

$ sudo dnf copr enable copart/restic
$ sudo dnf install restic

Instalace Restic v Solus:

$ sudo eopkg install restic

Instalace Restic v operačním systému Nix:

$ nix-env --install restic

Nainstalujte Restic do openSUSE:

$ sudo zypper install restic

Instalujte restic pomocí Linuxbrew:

$ brew install restic

Instalovat Restic ze zdroje:

Pro ostatní operační systémy jej můžete zkompilovat a nainstalovat, jak je uvedeno níže. Nejprve se ujistěte, že máte nainstalovanou aplikaci Go jazyk ve vašem systému.

  • Jak nainstalovat jazyk Go v systému Linux

Jakmile Go nainstalujete, git clone restic github repository:

$ git clone https://github.com/restic/restic

Tento příkaz naklonuje veškerý obsah restic úložiště v aktuálním pracovním adresáři.

Cd do zbývajícího adresáře:

$ cd restic

A nainstalujte Restic jako níže:

$ go run build.go

Zkontrolujte nainstalovanou verzi Restic:

$ restic version
restic 0.12.0 compiled with go1.14.12 on linux/amd64

Aktualizovat Restic

Pokud jste Restic nainstalovali z oficiálních repozitářů, může to být trochu stará verze.

Chcete-li aktualizovat Restic na nejnovější verzi, spusťte:

$ sudo restic self-update

Nyní zkontrolujte jeho verzi příkazem:

$ restic version
restic 0.12.1 compiled with go1.16.6 on linux/amd64

Zálohování a obnova dat pomocí Restic v Linuxu

Restic podporuje následující backendy pro ukládání zálohy:

  1. Místní adresář,
  2. server sftp (přes SSH),
  3. server HTTP REST,
  4. AWS S3,
  5. OpenStack Swift,
  6. BackBlaze B2,
  7. Microsoft Azure Blob Storage,
  8. Google Cloud Storage,
  9. A mnoho dalších služeb prostřednictvím rclone .

Nyní se podívejme, jak zálohovat a obnovovat data v místním adresáři.

Vytvořit nové místní úložiště

Nejprve vytvořte úložiště pro uložení zálohy. Chystám se například vytvořit úložiště s názvem moje záloha v mém $HOME adresáři.

$ restic init --repo ~/mybackup

Dvakrát zadejte heslo pro úložiště. Pro pozdější přístup k tomuto úložišti si musíte zapamatovat heslo. V opačném případě trvale ztratíte data uložená v úložišti. Byli jste varováni!

enter password for new repository: 
enter password again: 
created restic repository c1c5bcfdb8 at /home/sk/mybackup

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

Jak vidíte ve výše uvedeném výstupu, lokální restitivní úložiště s ID c1c5bcfdb8 je vytvořen na /home/sk/mybackup umístění.

Nyní je čas zálohovat data do nově vytvořeného úložiště.

Zálohujte data do místního adresáře pomocí Restic

Chystám se zálohovat celý ~/mydata adresáře (včetně samotného adresáře) do úložiště ~/mybackup pomocí příkazu:

$ restic -r ~/mybackup backup ~/mydata

Zadejte heslo svého úložiště:

Ukázkový výstup:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
no parent snapshot found, will read all files

Files:           7 new,     0 changed,     0 unmodified
Dirs:            4 new,     0 changed,     0 unmodified
Added to the repo: 21.919 MiB

processed 7 files, 21.913 MiB in 0:00
snapshot 7457d80e saved

Jak můžete vidět, restic vytvořil zálohu daného adresáře, tj. mydata . Navíc jsem vytvořil snímek aktuální zálohy s jedinečným názvem 7457d80e .

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

  • restic :Příkaz restic
  • -r :Označuje úložiště
  • ~/mybackup :Název úložiště
  • backup - Dílčí příkaz Restic pro zálohování souborů/složek
  • ~/mydata - Adresář k zálohování.

Přidejte další soubory/složky do záložního adresáře. Například jsem přidal nový soubor s názvem vi editor.pdf v ~/mydata adresář. Nyní spusťte znovu stejný restic příkaz:

$ restic -r ~/mybackup backup ~/mydata
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
using parent snapshot 7457d80e

Files:           1 new,     0 changed,     7 unmodified
Dirs:            0 new,     3 changed,     1 unmodified
Added to the repo: 50.123 KiB

processed 8 files, 21.957 MiB in 0:00
snapshot 963d4de3 saved

Restic bude vytvářet nové snímky s jedinečným názvem pokaždé, když jej spustíme.

Vzhledem k tomu, že Restic provádí přírůstkové zálohování, budou následující zálohy mnohem rychlejší než předchozí zálohy. Můžeme průběžně přidávat data do záložní složky a spustit zálohu, abychom vytvořili mnoho snímků.

Nejen adresáře, Restic nám také umožňuje zálohovat jednotlivé soubory.

$ restic -r ~/mybackup backup ~/mydata/vi\ editor.pdf 

Ukázkový výstup:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
no parent snapshot found, will read all files

Files:           1 new,     0 changed,     0 unmodified
Dirs:            3 new,     0 changed,     0 unmodified
Added to the repo: 47.129 KiB

processed 1 files, 45.139 KiB in 0:00
snapshot 59439d78 saved

Jak vidíte, v úložišti je vytvořen nový snímek s názvem 59439d78.

Seznam snímků

Chcete-li zobrazit seznam dostupných snímků v místním úložišti, spusťte:

$ restic -r ~/mybackup snapshots

Ukázkový výstup:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Jak vidíte, mám 2 snímky, konkrétně 7457d80e a 963d4de3 .

Zkontrolujte rozdíl mezi dvěma snímky

Pro kontrolu rozdílu mezi dvěma snímky můžeme použít diff možnost jako níže:

$ restic -r ~/mybackup diff 7457d80e 963d4de3

Tento příkaz porovná dané dva snímky a vypíše rozdíly, tj. které soubory jsou přidány, kolik souborů a adresářů je odstraněno z úložiště.

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
comparing snapshot 7457d80e to 963d4de3:

+    /home/sk/mydata/vi editor.pdf

Files:           1 new,     0 removed,     0 changed
Dirs:            0 new,     0 removed
Others:          0 new,     0 removed
Data Blobs:      1 new,     0 removed
Tree Blobs:      4 new,     4 removed
  Added:   50.123 KiB
  Removed: 4.511 KiB

Jak vidíte, přidal jsem do zálohy nový soubor PDF.

Vyloučit soubory a složky

Je také možné vyloučit některé soubory nebo adresáře. Například následující příkaz vyloučí všechny .doc zadejte soubory:

$ restic -r ~/mybackup backup --exclude=*.doc ~/mydata

Případně můžete do souboru vložit skutečné umístění všech souborů a složek, které chcete ze zálohy vyloučit, a zadat jeho cestu v příkazu backup.

Vytvořte například soubor s názvem exclude :

$ vi exclude.txt

Přidejte soubory nebo složky, které chcete vyloučit:

*.txt
ostechnix.zip
mydata/movies

Nyní spusťte proces zálohování pomocí příkazu:

$ restic -r ~/backup backup --exclude-file=exclude.txt ~/mydata

Další podrobnosti o restic backup příkaz, prosím spusťte:

$ restic help backup

Nyní jsme úspěšně zálohovali naše data. Dále uvidíme, jak obnovit data z místní zálohy.

Obnovení dat pomocí Restic

Obnovení dat je snadné!

Nejprve vypište dostupné snímky z úložiště pomocí příkazu:

$ restic -r ~/mybackup snapshots

Chcete-li obnovit data z konkrétního snímku, například 7457d80e , spustit:

$ restic -r ~/mybackup restore 7457d80e --target ~/mydata

Ukázkový výstup:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
restoring <Snapshot 7457d80e of [/home/sk/mydata] at 2021-08-13 12:51:58.592771333 +0530 IST by [email protected]> to /home/sk/mydata

Právě jsme obnovili data ze snímku 7457d80e na ~/mydata adresář.

Chcete-li obnovit jeden soubor ze snímku, provedeme:

$ restic -r ~/mybackup restore 7457d80e --target ~/mydata file.json

Další podrobnosti naleznete v části restore sekce nápovědy k příkazům.

$ restic help restore

Připojte úložiště pro zobrazení zálohovaných dat

Zálohu můžete procházet jako běžný souborový systém. To se hodí, když chcete zobrazit obsah úložiště.

Nejprve vytvořte přípojný bod:

$ mkdir ostechnix

Poté připojte své úložiště na ostechnix bod připojení, jak je znázorněno níže.

$ restic -r ~/mybackup mount ostechnix/

Tento příkaz připojí úložiště Restic do vašeho místního souborového systému.

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
Now serving the repository at ostechnix/
When finished, quit with Ctrl-c or umount the mountpoint.

Nyní otevřete správce souborů a uvidíte, že je tam připojeno vaše úložiště. Přejděte do složky snímků a ověřte data.

Až budete hotovi, stiskněte Ctrl-c pro ukončení nebo odpojení přípojného bodu ze Správce souborů.

Další podrobnosti naleznete v části nápovědy:

$ restic help mount

Odebrání snímků

Nejprve vypište všechny dostupné snímky v úložišti:

$ restic -r ~/mybackup snapshots
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Chcete-li odstranit snímek, například 963d4de3 , spustit:

$ restic -r ~/mybackup forget 963d4de3

Ukázkový výstup:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
[0:00] 100.00%  1 / 1 files deleted

Zkontrolujte, zda je snímek odstraněn nebo ne:

$ restic -r ~/mybackup snapshots
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
1 snapshots

Snímek je pryč! Data, na která odkazovaly soubory v tomto snímku, jsou však stále uložena v úložišti.

Chcete-li vyčistit data bez odkazu, spusťte:

$ restic -r ~/mybackup prune

Ukázkový výstup:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
loading indexes...
loading all snapshots...
finding data that is still in use for 1 snapshots
[0:00] 100.00%  1 / 1 snapshots
searching used packs...
collecting packs for deletion and repacking
[0:00] 100.00%  8 / 8 packs processed

to repack:            0 blobs / 0 B
this removes          0 blobs / 0 B
to delete:            5 blobs / 50.279 KiB
total prune:          5 blobs / 50.279 KiB
remaining:           25 blobs / 21.919 MiB
unused size after prune: 0 B (0.00% of remaining size)

rebuilding index
[0:00] 100.00%  6 / 6 packs processed
deleting obsolete index files
[0:00] 100.00%  3 / 3 files deleted
removing 2 old packs
[0:00] 100.00%  2 / 2 files deleted
done

Po odstranění všech snímků a souvisejících dat můžete odstranit úložiště.

$ rm -fr ~/mybackup/

Závěr

Nyní víte, jak nainstalovat a používat zálohovací program Restic k ochraně vašich důležitých dat. Zabývali jsme se pouze tím, jak zálohovat soubory a složky do místního adresáře pomocí Restic. Je toho víc! V našich nadcházejících průvodcích uvidíme, jak zálohovat data do vzdáleného systému a cloudového úložiště.

Doporučuji také zkontrolovat oficiální dokumentaci Restic pro podrobnější použití.


Linux
  1. Jak nainstalovat a otestovat Ansible na Linuxu

  2. Jak zálohovat a obnovit úložiště SVN v Linuxu

  3. Jak zálohovat a obnovit data a konfigurace RabbitMQ

  1. MySQL:Jak zálohovat (vypsat) a obnovit databázi pomocí mysqldump

  2. Jak nainstalovat MongoDB ze zdroje (a pomocí YUM) na Linuxu

  3. Jak sestavit a nainstalovat GLFW 3 a používat jej v projektu Linux

  1. Jak nainstalovat Elasticsearch a Kibana na Linux

  2. Jak nainstalovat a používat Flatpak v Linuxu

  3. Jak zálohovat a obnovit nastavení aplikací pomocí Mackupu na nově nainstalovaném systému Linux