GNU/Linux >> Znalost Linux >  >> Linux

Klid s Restic Backup na Linuxu

Zálohování je jednou z nejdůležitějších věcí v každém odvětví a možná hledáte řešení zálohování, které je nejspolehlivější. Proč nezkusit zálohování Restic na Linuxu?

Restic je bezpečné, rychlé a spolehlivé řešení zálohování. A v tomto tutoriálu se naučíte nastavit zálohovací systém Restic na serveru Linux.

Čtěte dál a už nikdy neztratíte žádná ze svých dat!

Předpoklady

Tento tutoriál bude praktickou ukázkou. Chcete-li pokračovat, ujistěte se, že máte následující:

  • Dva linuxové servery – Tento výukový program používá dva servery Debian 11 s názvem server1 a záložní server .
  • Uživatel bez oprávnění root s právy sudo.

Instalace Restic v systému Linux

Restic ukládá data do šifrovaného úložiště a kdykoli do úložiště přidáte data, Restic automaticky vytvoří nový snímek. Než však využijete výhody zálohovacího nástroje Restic, musíte nejprve nainstalovat Restic na váš počítač.

1. Otevřete svůj terminál a přihlaste se do server1 stroj.

2. Dále spusťte wget příkaz níže ke stažení binárního souboru Restic. V době psaní tohoto článku je nejnovější verze Restic v0.12.1.

wget https://github.com/restic/restic/releases/download/v0.12.1/restic_0.12.1_linux_amd64.bz2

3. Spuštěním následujících příkazů extrahujte restic_0.12.1_linux_amd64.bz2 a ověřte restic_0.12.1_linux_amd64 binární soubor existuje.

# Extract restic_0.12.1_linux_amd64.bz2
bzip2 -dv restic_0.12.1_linux_amd64.bz2
# List the files to verify restic_0.12.1_linux_amd64 exists
ls

4. Nyní spusťte chmod příkaz k vytvoření restic_0.12.1_linux_amd64 spustitelný soubor, pak soubor přejmenujte a přesuňte do /usr/bin/restic adresář.

V tuto chvíli můžete na svém serveru spustit příkaz restic.

# Make Restic file executable
chmod +x restic_0.12.1_linux_amd64

# Installing Restic
mv restic_0.12.1_linux_amd64 /usr/bin/restic

5. Spusťte restic příkaz níže pro vygenerování dokončení bash pro Restic. Uživatelé tak mohou snadno spouštět restic příkaz.

restic generate --bash-completion /etc/bash_completion.d/restic

6. Nakonec spusťte níže uvedený příkaz, abyste znovu načetli dokončení bash v aktuální relaci terminálu, poté spusťte restic a stiskněte TAB zobrazíte dostupné možnosti pro restic příkaz.

Nakonec spusťte následující příkazy a znovu načtěte dokončení bash ve vaší aktuální relaci terminálu. Napište restic a stisknutím klávesy TAB zobrazte dostupné možnosti pro příkaz restic.

# reload bash completion
source /etc/profile.d/bash_completion.sh

# verify restic command
restic

Měli byste vidět všechny dostupné možnosti příkazu restic, jak je uvedeno níže.

Nastavení záložního serveru

Nyní, když jste nainstalovali Restic na server1 dalším krokem je nastavení backup-server , takže můžete začít zálohovat svá data prostřednictvím protokolu SFTP.

Ve výchozím nastavení vám Restic umožňuje zálohovat data do místního adresáře, vzdáleného serveru a protokolu SFTP. Restic také umožňuje zálohovat data do cloudových zálohovacích služeb třetích stran, jako jsou Amazon S3, Azure Blog Storage, Backblaze B2 a Google Cloud Storage.

1. Otevřete nový terminál a přihlaste se k backup-server stroj.

2. Dále spusťte níže uvedený příkaz a vytvořte nového uživatele s názvem johndoe a nastavit heslo.

# create new user
useradd -m -s /bin/bash johndoe

# setup the password
passwd johndoe

3. Spuštěním každého příkazu níže vytvořte nový záložní adresář (/srv/backup ) pro Restic a změňte vlastnictví (chown ) na johndoe uživatel a skupina. Tento adresář bude ukládat všechna zálohovaná data z server1 stroj.

# create new backup directory
mkdir -p /srv/backup

# change ownership of the backup directory
sudo chown -R johndoe:johndoe /srv/backup

4. Nyní přepněte na server1 stroj a spusťte níže uvedený příkaz pro vygenerování klíče SSH.

Namísto ověřování na základě hesla budete používat ověřování na základě klíče. Klíč SSH je nezbytný, zejména při nastavování automatického zálohování pomocí skriptu shellu nebo pomocí úloh Cron.

ssh-keygen

Stisknutím klávesy ENTER zobrazíte následující výzvy, jak je uvedeno níže. Pokud tak učiníte, nastaví místo uložení vašeho klíče SSH na výchozí adresář (~/.ssh) a zakáže heslo pro váš soukromý klíč SSH.

V tomto okamžiku budete mít v adresáři ~/.ssh soubory id_rsa (soukromý klíč SSH) a id_rsa.pub (váš veřejný klíč).

5. Spusťte ls níže, abyste ověřili, že id_rsa a id_rsa.pub soubory existují v ~/.ssh adresář.

ls ~/.ssh/

6. Dále spusťte ssh-copy-id příkaz níže k nahrání veřejného klíče SSH do backup-server . V této ukázce backup-server používá uživatelské jméno johndoe a IP adresa 172.16.1.150 .

ssh-copy-id [email protected]

Po dokončení nahrávání se na vašem terminálu zobrazí zpráva Počet přidaných klíčů:1.

7. Nakonec spusťte ssh příkaz níže pro ověření a připojení k backup-server .

ssh [email protected]

Všimněte si, že jste se automaticky přihlásili k záložnímu serveru bez ověření heslem.

Inicializace nového úložiště

Nyní jste nakonfigurovali záložní server Restic, takže dalším krokem je inicializace nového úložiště. Restic uloží data zálohy do úložiště a každá akce zálohování vytvoří v tomto úložišti nový snímek.

1. Spusťte restic příkaz níže k inicializaci (init ) úložiště (-r :/srv/backup ) pomocí protokolu SFTP.

restic -r sftp:[email protected]:/srv/backup init

2. Zadejte silné heslo pro úložiště a potvrďte heslo. Heslo si zapamatujte, protože jej použijete k dešifrování zálohovaných dat.

Jak je uvedeno níže, nové úložiště (a9073b62d0) je vytvořeno na serveru SFTP (sftp:[email protected]:/srv/backup).

3. Nakonec spusťte restic příkaz níže pro ověření úložiště. Budete vyzváni k zadání hesla, které jste si dříve poznamenali pro úložiště (krok dva).

restic -r sftp:[email protected]:/srv/backup check

Pokud nedojde k žádné chybě, zobrazí se níže uvedená zpráva, že nebyly nalezeny žádné chyby.

Zálohování dat do úložiště

Nyní jste inicializovali úložiště pomocí serveru SFTP na backup-server . Jak ale zálohovat data pomocí Restic? Budete zálohovat data z server1 do úložiště v backup-server .

1. Spusťte restic příkaz níže k zálohování dat z /var/www/wordpress adresář do úložiště.

restic -r sftp:[email protected]:/srv/backup backup /var/www/wordpress

Zadejte heslo pro úložiště a po dokončení procesu zálohování Restic vytvoří snímek (736949a9), jak je znázorněno níže.

2. Dále spusťte níže uvedený příkaz a vypište všechny snapshots .

restic -r sftp:[email protected]:/srv/backup snapshots

Ujistěte se, že snímek (736949a9) je dostupný v seznamu, jak je uvedeno níže

3. Spusťte níže uvedený příkaz a vypište všechny soubory (ls ) na snímku (736949a9 ).

restic -r sftp:[email protected]:/srv/backup ls 736949a9

Na snímku (736949a9), což jsou data zálohy z adresáře /var/www/wordpress/, uvidíte seznam souborů.

Kromě toho můžete spustit níže uvedený příkaz a zálohovat více adresářů (/var/www/wordpress a /var/www/html) do stejného úložiště.

restic -r sftp:[email protected]:/srv/backup backup /var/www/wordpress /var/www/html

Všimněte si níže, že Restic vytvořil nový snímek (7b6e321e).

4. Nyní spusťte každý níže uvedený příkaz a vypište všechny snímky, statistiky záložních souborů a rozdíl mezi dvěma snímky (736949a97b6e321e ).

# checking list snapshots
restic -r sftp:[email protected]:/srv/backup snapshots

# show stats of repository
restic -r sftp:[email protected]:/srv/backup stats

# checking different between two snapshots
restic -r sftp:[email protected]:/srv/backup diff 736949a9 7b6e321e

Níže mají snímky 736949a9 a 7b6e321e stejná záložní data (/var/www/wordpress). Všimněte si, že jejich velikosti souborů v úložišti jsou také stejné, protože Restic pouze zálohuje změny souborů, takže Restic je rychlý a efektivní.

Vyloučení souborů v procesech zálohování

Zálohování dat se hodí, ale jak vyloučíte nepotřebná data? Restic umožňuje vyloučit soubory/adresáře pomocí --exclude-file možnost během procesu zálohování.

--exclude-file Tato možnost může vyloučit nevyžádané soubory, jako jsou soubory protokolu, čímž je proces zálohování rychlejší a čistší.

1. Spuštěním níže uvedeného příkazu vytvořte nový adresář s názvem /opt/backup k uložení zálohovaných souborů.

mkdir -p /opt/backup

2. Dále vytvořte nový soubor (/opt/backup/excludes.txt ) pomocí preferovaného textového editoru a vyplňte následující konfiguraci.

Níže uvedená konfigurace říká Resticu, aby vyloučil soubory s různými typy souborů.

# excludes files .zip
*.tar.gz

# excludes directory logs
logs

# exclude .txt files on the directory data
data/*.txt

3. Spusťte níže uvedený příkaz pro zálohování dat z /var/www/html adresář do úložiště (-r :/srv/backup ). --exclude-files volba říká Resticu, aby vyloučil soubory a adresáře uvedené v exludes.txt soubor.

restic -r sftp:[email protected]:/srv/backup backup /var/www/html --exclude-file=/opt/backup/excludes.txt

Níže je nový záložní snímek ca99be01 vytvořený společností Restic, s výjimkou souborů, které jste uvedli v souboru excludes.txt soubor.

4. Nyní spusťte níže uvedený příkaz a ověřte seznam souborů (ls ) na snímku ca99be01 .

restic -r sftp:[email protected]:/srv/backup ls ca99be01

Uvidíte všechny zálohované soubory kromě těch, které jste definovali v konfiguračním souboru (excludes.txt ).

5. Nakonec spusťte tree níže, abyste ověřili, že vyloučená data fungují s Restic.

tree /var/www/html/

Jak vidíte níže, adresář /var/www/html obsahuje textové soubory, ale Restic je ze zálohy nevyloučil.

Odebrání snímků z úložiště

Ve většině případů můžete potřebovat pouze dvě nebo nejpozději tři verze snímků. Proč tedy neodstranit starší snímky? Odstranění snímků vyžaduje, abyste znali ID snímku, proto nejprve zkontrolujte seznam snímků.

1. Spuštěním níže uvedeného příkazu zobrazíte seznam všech snímků v úložišti.

restic -r sftp:[email protected]:/srv/backup snapshots

Vyberte jedno ID snímku, který chcete odstranit (736949a9).

2. Dále spusťte následující příkazy k odstranění (forget ) konkrétní snímek (736949a9 ) a jeho zbývající data z úložiště.

# Removes snapshot only
restic -r sftp:[email protected]:/srv/backup forget 736949a9
# Removes remaining data from repository
restic -r sftp:[email protected]:/srv/backup prune

3. Spusťte níže uvedený příkaz a proveďte --dry-run a podívejte se, které snímky budou odstraněny (forget ) a které dvě verze snímků budou zachovány (--keep-last 2 ).

Před odstraněním snímků se vždy doporučujeprovést nasucho, aby nedošlo ke ztrátě důležitých snímků.

restic -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune --dry-run

4. Pro odstranění spusťte níže uvedený příkaz (forget ) staré verze snímků a ponechat poslední dvě (--keep-last 2). ) z úložiště.

restic -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune

5. Nakonec spusťte níže uvedený příkaz a vypište všechny existující snímky.

restic -r sftp:[email protected]:/srv/backup snapshots

Níže můžete vidět, že zbývají pouze poslední dvě verze snímků.

Obnova dat v úložišti

Možná jste omylem odstranili důležitá data z úložiště. Pokud ano, jak je získáte zpět? Naštěstí vám Restic umožňuje dešifrovat a obnovit data zálohy, pokud znáte ID snímku zálohy.

1. Spusťte restic níže, abyste zkontrolovali dostupné snímky v úložišti.

restic -r sftp:[email protected]:/srv/backup snapshots

Níže je uveden příklad snímků dostupných v úložišti. Poznamenejte si ID snímku zálohovaných dat, která chcete obnovit.

2. Dále spusťte následující příkazy a vytvořte adresář pro obnovení (/opt/restore ) a obnovte svůj cílový snímek (6b44ac32 ) do tohoto adresáře pro obnovení.

# Create a restore directory
mkdir -p /opt/restore
# Restore snapshot data to the /opt/restore directory
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore

3. Nakonec spusťte ls příkaz níže pro ověření obnovených dat.

ls /opt/restore/var/www/wordpress

Jak je uvedeno níže, uvidíte seznam souborů obnovených ze snímku (6b44ac32).

Obnovení konkrétních souborů

Právě jste obnovili ztracená data, ale co když potřebujete obnovit pouze konkrétní soubor? S Restic můžete cílit na konkrétní soubor připojením --include možnost v restic příkaz.

1. Spuštěním níže uvedeného příkazu vytvořte adresář pro uložení konkrétního souboru, který chcete obnovit ze snímku.

mkdir -p /opt/restore/specific

2. Dále spusťte restic příkazy níže k obnovení konkrétního adresáře (/var/www/wordpress/wp-content ) a konkrétní soubor (wp-config.php ) ze snímku (6b44ac32 ). Každý příkaz nastaví cílový adresář obnovení na /opt/restore/specific adresář.

# restore specific directory wp-config
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore/specific --include /var/www/wordpress/wp-content

# restore specific file wp-config.php
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore/specific --include /var/www/wordpress/wp-config.php

3. Nakonec spusťte ls příkaz níže k ověření obnoveného souboru a adresáře v adresáři (/opt/restore/specific ).

ls /opt/restore/specific/var/www/wordpress

Pokud obnovení fungovalo správně, uvidíte adresář (wp-content) a soubor (wp-config.php) obnovené ze snímku (6b44ac32).

Automatické zálohování dat pomocí Restic a Cronu

V tuto chvíli jste se již naučili všechny základní způsoby použití zálohovacího nástroje Restic. Ale protože ruční zálohování dat může být bolestné, proč automaticky zálohovat data v systému Linux? Restic spolu s Cronem dokáže zázraky, jako je automatizace procesu zálohování dat.

1. Vytvořte nový soubor (/opt/backup/.secret ) pomocí preferovaného editoru a zadejte heslo svého úložiště. Tato ukázka používá heslo ResticRepositoryPassword pro úložiště Restic.

2. Dále spusťte níže uvedený příkaz a změňte oprávnění /opt/backup/.secret soubor na 600 . Kód oprávnění 600 dává oprávnění ke čtení a zápisu pouze /opt/backup/.secret vlastník souboru.

chmod 600 /opt/backup/.secret

3. Spusťte crontab příkaz níže k vytvoření nové úlohy Cron. -u root volba označuje, že úloha Cron bude spuštěna jako uživatel root.

crontab -u root -e

4. Vyberte preferovaný editor a v tomto editoru se otevře konfigurační soubor Cron. Ale toto demo používá nano editor.

5. Nakonec vyplňte konfiguraci Cronu následující konfigurací pro nastavení automatického zálohování a uložení změn.

Níže uvedený skript provádí následující:

  • Spusťte restic příkaz každých 1.AM do záložních adresářů (/var/www/wordpress/var/www/html ) na server SFTP úložiště (sftp:[email protected]:/srv/backup ).
  • Automaticky odstranit starý snímek na 2.AM a ponechte si poslední dvě verze snímků.
  • Určuje (--password-file ) soubor (/opt/backup/.secret ), který obsahuje vaše heslo k úložišti Restic, takže nemusíte heslo pevně zakódovat v konfiguraci Cronu.
# Runs daily backup at 1.AM
0 1 * * * restic --password-file /opt/backup/.secret -r sftp:[email protected]:/srv/backup backup --verbose /var/www/{wordpress,html}

# Runs every 2.AM, and always keeps the last 2 backup snapshots
0 2 * * * restic --password-file /opt/backup/.secret -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune

Závěr

V tomto tutoriálu jste se naučili, jak nainstalovat Restic na Linux a různé způsoby zálohování dat, od adresářů po konkrétní soubory se snímky. Kromě zálohování dat jste zjistili, že můžete obnovit nečekaně ztracená data. Automatizace hraje velkou roli při zálohování vašich dat, takže udržujte úlohy Cron spuštěné, abyste svá data zabezpečili.

V tuto chvíli jste připraveni zálohovat více dat pomocí Restic. A proč nevyužít zálohování pomocí značek, zásad filtrování a zálohovacích cloudových služeb?


Linux
  1. Správa balíků Linux pomocí apt

  2. Co je nového s rdiff-backup?

  3. JQ Command v Linuxu s příklady

  1. Vytvářejte hudbu na Linuxu s Ardorem

  2. Upravujte zvuk na Linuxu pomocí Audacity

  3. Instalujte aplikace na Linux pomocí Flatpak

  1. Nainstalujte Linux pomocí LVM

  2. Nahradit du prachem v Linuxu

  3. Správa linuxových balíčků s dnf