V Linuxu existuje několik nástrojů pro zálohování, které poskytují funkce pro zálohování na úrovni systému i zálohování uživatelských dat. V tomto obsáhlém článku se podíváme na to, co je BorgBackup a jak zálohovat a obnovovat soubory pomocí Borg v Linuxu a systémech podobných Unixu.
1. Úvod
Když ve své práci nakládám s velkým množstvím dat, napadají mě jako první zřejmé otázky:1. Co když o svá data přijdu? 2. Jak dobře jsou moje data zabezpečena?
Stejný scénář bude aplikován na osobní stroj. Svá data byste měli vždy zálohovat v závislosti na jejich důležitosti a chránit je před nelegálním přístupem.
Ať už se jedná o vaše osobní data nebo oficiální data, měli byste vždy naplánovat dobrou strategii zálohování a používat robustní nástroje pro zálohování, které vám pomohou se zálohováním vašich důležitých dat. Jednou z nejvíce doporučovaných a široce používaných aplikací pro zálohování s otevřeným zdrojovým kódem je "Borg" .
2. Co je Borg?
BorgBackup, zkráceně borg, je zálohovací nástroj, který byl vytvořen, aby poskytoval efektivní způsob zálohování dat pomocí techniky deduplikace.
Některé z jedinečných vlastností borgu jsou uvedeny níže.
- Deduplikace - Technika deduplikace ukládá pouze přírůstkové kopie dat, což je ideální pro každodenní zálohování.
- Více platforem - Borg lze nainstalovat a používat v systémech Linux, Mac OS X a FreeBSD.
- Zabezpečení - Podporuje šifrování dat pomocí AES šifrování (256bitové), k ověření pravosti HMAC-SHA256 se používá.
- Komprese - Data lze komprimovat pomocí následujících metod komprese:
- LZ4 -> Super rychlý, nízká komprese.
- ZSTD -> Vysoká rychlost a nízká komprese na nízkou rychlost a vysokou kompresi.
- ZLIB -> Střední rychlost, střední komprese.
- LZMA -> Nízká rychlost, vysoká komprese.
- Vzdálené zálohování - Data lze zálohovat na vzdálené počítače přes protokol SSH.
3. Nainstalujte Borg v Linuxu
Borg je k dispozici ve výchozích repozitářích většiny distribucí Linuxu. Lze jej tedy nainstalovat pomocí správce balíčků specifického pro distribuci.
Chcete-li nainstalovat borg v Alpine Linux, spusťte následující příkaz:
$ sudo apk přidat borgbackup
Chcete-li nainstalovat borg v Arch Linuxu a jeho variantách, jako je EndeavourOS a Manjaro Linux, spusťte následující příkaz:
$ sudo pacman -S borg
Nainstalujte borg v distribuci založené na Debianu/Ubuntu:
$ sudo apt install borgbackup -y
Nainstalujte borg ve Fedoře, RHEL, CentOS, AlmaLinux a Rocky Linux:
$ sudo dnf nainstalovat borgbackup -y
Nainstalujte Borg do openSUSE:
$ sudo zypper nainstalovat borgbackup -y
Protože borg je napsán v Pythonu , můžete použít správce balíčků python PiP nainstalovat borg. V závislosti na nainstalované verzi pip můžete spustit kterýkoli z následujících příkazů.
$ pip install borgbackup
Nebo,
$ pip3 nainstalovat borgbackup
Po instalaci můžete ověřit instalaci Borg spuštěním příkazů verze a nápovědy:
$ borg --version
$ borg --help
4. Udělejte si první zálohu pomocí Borg
Než provedete první zálohu, musíte pochopit dva důležité pojmy.
- Archiv - Záložní kopie (snímky) vašich dat bude označována jako archiv.
- Úložiště - Adresáře ve vašem místním nebo vzdáleném systému souborů, kde jsou uloženy archivy.
Nejprve inicializujte úložiště (adresář), kde budou archivy uloženy.
Mám seznam souborů v adresáři s názvem "zdroj" a vytvořili nový adresář s názvem "backup" který bude fungovat jako moje úložiště pro ukládání archivů.
5. Inicializujte úložiště
Spusťte borg init
příkaz k inicializaci záložního adresáře. Záložní adresář může být v místním počítači nebo ve vzdáleném počítači. V mém případě inicializujem adresář (tj. zálohu ), který jsem již vytvořil.
$ borg init --encryption=none /home/karthick/borg/backup
$ borg init --encryption=repokey /home/karthick/borg/backup
$ borg init --encryption=keyfile /home/karthick/borg/backup
Při inicializaci úložiště si můžete vybrat typ šifrování . Když používáte typ šifrování „Žádné“ , nebude použito žádné šifrování. Když používáte "repokey" a "soubor klíče" jako typy šifrování používá AES-CTR-256 pro šifrování.
Vyberte libovolný typ šifrování a spusťte init
příkaz. V mém případě volím typ šifrování jako žádné pro demonstrační účely.
6. Zálohujte soubory pomocí Borg
6.1. Vytvořte první zálohu
Jakmile je úložiště inicializováno, můžete vytvořit zálohy spuštěním následujícího příkazu:
$ borg create --stats --progress /home/karthick/borg/backup::25-11-2021 /home/karthick/borg/source/
Zde uvádím název archivu ve formátu data "25-11-2021" simulace denních záloh. Bez --stats
a --progress
flags, výstup příkazu create bude tichý.
6.2. Zobrazovat soubory při vytváření záloh
Můžete také kombinovat --list
a -v
flag pro zobrazení seznamu souborů v archivu při spuštění borg create
příkaz.
$ borg create --list -v /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/
6.3. Vytvářejte komprimované zálohy
Ve výchozím nastavení používá borg lz4 kompresní algoritmus. Kompresní algoritmus lz4 je velmi rychlý a má nízký kompresní poměr. V případě, že chcete použít jiný kompresní algoritmus, můžete použít --compression
flag a předat typ spolu s úrovní komprese.
Například, pokud chci použít zstd algoritmu, pak můj příkaz bude následující.
$ borg create --compression zstd,1 /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/
Můžete se podívat na různé kompresní algoritmy a jejich úroveň z oficiální dokumentace Borg .
6.4. Získejte informace o archivu
Můžete použít info
příkaz k získání informací o konkrétním archivu.
$ borg info /home/karthick/borg/backup/::25-11-2021
7. Seznam záloh
Pomocí borg list
můžete se dotázat svého úložiště, abyste našli seznam archivů a jaké soubory jsou v archivech.
Chcete-li získat pouze seznam archivů, spusťte následující příkaz.
$ seznam borgů /home/karthick/borg/backup
Ukázkový výstup:
25-11-2021 ČT, 2021-11-25 13:16:53 [653d952301fc70ab9f2f74794361359144e05f5534e668ef4a4957d377f679
26-11-2021 Čt, 2021-11-25 13:19:51 [473bbe30fbe8597b63910310d567e69b501b2fb7127f04a78da76ab59d90114f]
27-11-2021 Čt, 2021-11-25 13:20:01 [0e6813f1a05246d43d196de9d28034d0397b4ae50cd20ee50163e347e2a]Můžete také použít
--json
příznak, který poskytne více informací o úložišti a seznamu archivů v json formát.$ seznam borgů --json /home/karthick/borg/backup7.1. Seznam souborů v archivech
Chcete-li získat seznam souborů v archivu, spusťte následující příkaz. Zde uvádím soubory z archivu "25-11-2021" .
$ seznam borgů /home/karthick/borg/backup::25-11-2021Ukázkový výstup:
drwxrwxr-x karthick karthick 0 ČT, 2021-11-25 12:48:58 home/karthick/borg/source
-rw-r--r-- karthick karthick 807 Po, 2021-11-22 13:35:51 home/karthick/borg/source/project_profile.txt
-rw------- karthick karthick 2301 Po, 2021-11-22 13:35:51 home/karthick/borg/source/hist.txt
-rw-r--r-- karthick karthick 220 Po, 2021-11-22 13:35:51 home/karthick/borg/source/external.txt
-rw-r--r-- karthick karthick 3895 Po, 2021-11-22 13:35:51 home/karthick/borg/source/config.txtMůžete také použít
--json-lines
příznakem zobrazíte obsah archivu v JSON formát.7.2. Vyloučit soubory a adresáře ze zálohy
Soubory a adresáře můžete vyloučit pomocí
-e
nebo--exclude
vlajka.$ seznam borgů /home/karthick/borg/backup::25-11-2021 --exclude "hist"8. Najděte rozdíl mezi archivy
Můžete použít
diff
příkaz k porovnání dvou archivů.Vytvářím nový soubor s názvem
datafile.txt
podsource
adresář. Vytvořil jsem také jeden další archiv s názvem 28-11-2021 .Nyní mohu porovnat nový a starý archiv jako níže:
$ borg diff /home/karthick/borg/backup/::27-11-2021 28-11-2021přidáno 2,89 kB home/karthick/borg/source/datafile.txt9. Přejmenovat archivy
Jakmile je archiv vytvořen a chcete-li jej přejmenovat, můžete tak učinit pomocí
borg rename
příkaz.Řekněme, že chci přejmenovat archiv "27-11-2021" do "29-11-2021" , mohu to provést spuštěním následujícího příkazu.
$ borg přejmenovat /home/karthick/borg/backup/::27-11-2021 29-11-202110. Obnovte soubory pomocí borg (Extrahujte data z archivu)
Primárním cílem zálohování dat je jejich obnovení, kdykoli je to potřeba. Můžete tedy použít
borg extract
příkaz k načtení dat z archivů. Když spustíteextract
příkaz extrahuje data do aktuálního pracovního adresáře, odkud příkaz extract spouštíte.Spuštěním následujícího příkazu extrahujte archiv do aktuálního pracovního adresáře. Pomocí
-v
a--list
příznak přidán, zobrazí se vám seznam extrahovaných souborů.$ borg extract -v --list backup/::25-11-2021Můžete také použít
--dry-run
příznak, který pouze zobrazí, co se bude extrahovat, místo toho, aby to extrahovalo.$ borg extract --dry-run -v --list backup/::25-11-2021Konkrétní adresář můžete z archivu extrahovat zadáním názvu adresáře. Protože mám v archivu pouze jeden adresář, načte to.
$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/10.1. Vyloučit soubory z obnovy
Můžete také přidat
--exclude
k vynechání souborů při extrahování adresáře. Zde extrahuji všechny soubory s výjimkou souboru s hist .$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/ --exclude "hist"11. Připojte a odpojte úložiště a archivy
Úložiště nebo konkrétní archiv můžete připojit jako systém souborů fuse. Poté můžete obnovit soubory pomocí připojeného archivu.
Chcete-li připojit celé úložiště, spusťte následující příkazy:
$ mkdir /tmp/borg/$ borg mount /home/karthick/borg/backup/ /tmp/borg/$ ls -l /tmp/borg/Ukázkový výstup:
drwxr-xr-x 1 karthick karthick 0. listopadu 25 16:31 25. 11. 2021
drwxr-xr-x 1 karthick karthick 0 25. listopadu 16:31 26-11-2021
drwxr-xr-x 1 karthick karthick 0 25. listopadu 16:31 27-11-2021
drwxr-xr-x 1 karthick karthick 0 25. listopadu 16:31 28-11-2021
drwxr-xr-x 1 karthick karthick 0. listopadu 25 16:32 29-11-2021Z výše uvedeného výstupu můžete vidět, že všechny moje archivy jsou připojeny jako adresář a nyní je mohu jednoduše obnovit zkopírováním souborů.
Chcete-li připojit konkrétní archivy, stačí přidat název archivu spolu s úložištěm.
$ borg mount /home/karthick/borg/backup/::25-11-2021 /tmp/borg/Chcete-li odpojit připojené úložiště nebo archivy, použijte
borg umount
příkaz.$ borg umount /tmp/borg$ ls -l /tmp/borg12. Prořezávat archiv
borg prune
Příkaz bude velmi užitečný, když automatizujete zálohování a chcete udržovat pouze určité kopie a čistit zbývající kopie.Možnosti ve výše uvedené tabulce rozhodují o tom, kolik archivních kopií bude uloženo ve vašem úložišti. Pokud si například chci ponechat pouze 2 kopie z mé týdenní zálohy, pak můj příkaz bude následující.
$ borg prune -v --list --keep-weekly=2 /home/karthick/borg/backup/Výše uvedenou podmínku můžete také aplikovat pouze na určité archivy. Řekněme, že mám ve svém úložišti 10 archivů a chci pro archiv7 použít pravidlo uchování, pak mohu použít
--prefix
příznak pro nastavení podmínky.$ borg prune -v --list --keep-weekly=2 --prefix='{název archivu}' /home/karthick/borg/backup/Před spuštěním
prune
proveďte suchý běh pomocí--dry-run
vlajka.13. Smazat úložiště a archiv
Archiv nebo celé úložiště můžete smazat pomocí
borg delete
příkaz.Chcete-li odstranit jeden archiv, musíte zadat název archivu.
$ borg delete /home/karthick/borg/backup/::26-11-2021Chcete-li odstranit celý archiv, stačí zadat cestu k úložišti. Při mazání celého adresáře budete vyzváni k potvrzení.
$ borg smazat /home/karthick/borg/backup/14. Změnit klíčové heslo
Doposud jsem ukázal svůj příklad bez použití jakéhokoli šifrování na úložiště. Jak bylo předpovězeno v úvodní části, můžete inicializovat adresář s povoleným šifrováním a pokud
repokey
nebokeyfile
je použito, požádá vás o nastavení přístupové fráze volitelně.$ borg init --encryption=repokey /home/karthick/borg/bkup/Od této chvíle, kdykoli se pokusím provést jakoukoli operaci nad tímto úložištěm, měl bych pokaždé poskytnout přístupovou frázi. Podívejte se na obrázek níže, snažím se vypsat repozitář a musím pro něj poskytnout přístupovou frázi.
Nyní řekněme, že chcete změnit přístupovou frázi, pak to můžete provést pomocí
borg change-passphrase
příkaz.$ borg key change-passphrase -v /home/karthick/borg/bkupMůžete také nastavit přístupovou frázi pomocí proměnných prostředí.
$ BORG_PASSPHRASE="staré heslo" BORG_NEW_PASSPHRASE="nové heslo" heslo pro změnu klíče borg /home/karthick/borg/bkup15. Export a import klíč
Klíč úložiště můžete zálohovat jeho exportem a později v případě potřeby importovat.
Chcete-li exportovat klíč, spusťte následující příkaz:
Export klíče $ borg bkup/ ./key$ cat ./keyChcete-li importovat klíč do stejného úložiště, spusťte následující příkaz:
import klíče $ borg bkup/ ./key16. Práce se vzdálenými repozitáři
Cokoli jsme dosud viděli, je zálohování vašich dat na stejném počítači. Borg také podporuje vzdálená úložiště, kde můžete zálohovat svá data na libovolném vzdáleném počítači. Vzdálený hostitel by měl být přístupný přes SSH.
Syntaxe:
$ borg init [e-mail chráněn]:/cesta/k/repoPříklad:
$ borg init [e-mail chráněný]:/home/karthick/borg/bkupMůžete provádět všechny druhy podobných operací, které můžete provádět s místním zálohováním. Například k obnovení zálohy můžete použít
extract
a můžete také použítmount
příkaz k připojení vzdáleného úložiště.Zde při odkazování na vzdálený adresář musíte nasměrovat protokol ssh jako „
."ssh://[email protected]:port/path/to/repo
".$ borg mount ssh://[e-mail chráněný]:2222/home/karthick/borg/bkup /tmp/borg$ borg extract ssh://[email protected]:2222/home/karthick/borg/bkup17. Borg GUI desktop klienti
Protože BorgBackup je čistě nástroj příkazového řádku, je téměř nemožné zapamatovat si všechny příkazy. Někteří z vás by možná dali přednost pěkné grafické aplikaci, která vám umožní zálohovat data přes grafické rozhraní. Nebojte se!
Vorta je desktopový klient GUI pro BorgBackup. Pomocí Vorty můžete snadno integrovat aplikaci Borg do vašeho oblíbeného desktopového prostředí. Není třeba si pamatovat příkazy. Vše lze provést prostřednictvím jednoduchého grafického rozhraní!
Další podrobnosti o instalaci a používání Vorty naleznete v následující příručce.
- Vorta – grafické rozhraní pro BorgBackup
18. Závěr
V tomto článku jsme viděli, jak používat borg k zálohování a obnově dat v Linuxu. Borg má tolik funkcí, které můžete pochopit testováním nástroje. Dobrou alternativou pro borgy bude Timeshift zálohování na úrovni systému a rsync vzít uživatelské soubory a adresáře.