GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire il backup e il ripristino dei dati utilizzando Restic in Linux

Questa guida spiega cos'è Restic, come installare Restic in varie distribuzioni Linux e, infine, come eseguire il backup e il ripristino dei dati utilizzando Restic nei sistemi operativi Linux.

Restic:un'applicazione di backup veloce, sicura ed efficiente

Resta è un programma di backup veloce, open source, sicuro e multipiattaforma. Consente di salvare più revisioni di file e directory in un repository crittografato archiviato su backend diversi.

Restic utilizza la crittografia per garantire la riservatezza e l'integrità dei tuoi dati. Crittografa i dati con AES-256 in modalità contatore e autenticarlo utilizzando Poly1305-AES codice di autenticazione del messaggio crittografico.

Il backup e il ripristino dei dati con Restic è facile e molto veloce! Trasferisce solo i file modificati (backup incrementale) proprio come Rsync .

Utilizzando Restic, possiamo facilmente eseguire il backup di file e directory in un disco locale o in un sistema remoto o in un cloud storage. Restic supporta i popolari backend di archiviazione cloud come AWS, Azure, BackBlaze, Google Cloud, OpenStack e altri ancora.

Restic viene scritto utilizzando Go linguaggio di programmazione e il suo codice sorgente sono disponibili gratuitamente in GitHub. È un'applicazione di backup multipiattaforma. Supporta GNU/Linux, macOS, FreeBSD, openBSD e Microsoft Windows.

Installa Restic in Linux

Restic è un pacchetto per i più diffusi sistemi operativi Linux.

Installa Restic in Alpine Linux:

$ sudo apk add restic

Installa Restic in Arch Linux, EndeavourOS, Manjaro Linux:

Restic è disponibile nei repository predefiniti di Arch Linux. Assicurati che il [Community] repository è abilitato e installa Restic in Arch Linux e le sue varianti come EndeavourOS, Manjaro Linux usando Pacman come mostrato di seguito.

$ sudo pacman -S restic

Installa Restic da AUR:

Restic è disponibile anche in AUR. Quindi, puoi installarlo usando qualsiasi aiutante AUR, come Paru o , nei sistemi basati su Arch.

$ paru -S restic-git

Oppure,

$ yay -S restic-git

Installa Restic in Debian, Ubuntu, Linux Mint, Pop_OS!:

$ sudo apt-get install restic

Installa Restic in Fedora:

$ sudo dnf install restic

Installa Restic in RHEL, CentOS, AlmaLinux e Rocky Linux:

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

Installa Restic in Solus:

$ sudo eopkg install restic

Installa Restic in Nix OS:

$ nix-env --install restic

Installa Restic in openSUSE:

$ sudo zypper install restic

Installa restic utilizzando Linuxbrew:

$ brew install restic

Installa Restic dalla fonte:

Per altri sistemi operativi, puoi compilarlo e installarlo come di seguito. Innanzitutto, assicurati di aver installato Go lingua sul tuo sistema.

  • Come installare Go Language in Linux

Una volta installato Go, git clone restic github repository:

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

Questo comando clonerà tutto il contenuto del repository restic nella directory di lavoro corrente.

Cd nella directory restic:

$ cd restic

E installa Restic come di seguito:

$ go run build.go

Controlla la versione Restic installata:

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

Aggiorna Restic

Se hai installato Restic dai repository ufficiali, potrebbe essere una versione un po' vecchia.

Per aggiornare Restic all'ultima versione, esegui:

$ sudo restic self-update

Ora controlla la sua versione con il comando:

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

Backup e ripristino dei dati utilizzando Restic in Linux

Restic supporta i seguenti backend per archiviare il backup:

  1. Rubrica locale,
  2. server sftp (tramite SSH),
  3. Server HTTP REST,
  4. AWS S3,
  5. OpenStack Swift,
  6. BackBlaze B2,
  7. Archiviazione BLOB di Microsoft Azure,
  8. Google Cloud Storage,
  9. E molti altri servizi tramite rclone .

Ora, vediamo come eseguire il backup e il ripristino dei dati in una directory locale.

Crea un nuovo repository locale

Innanzitutto, creiamo un repository in cui archiviare il backup. Ad esempio, creerò un repository denominato mybackup nella mia directory $HOME.

$ restic init --repo ~/mybackup

Immettere due volte la password per il repository. È necessario ricordare la password per accedere a questo repository in un secondo momento. In caso contrario, perderai definitivamente i dati archiviati nel repository. Sei stato avvisato!

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.

Come puoi vedere nell'output sopra, un repository restic locale con ID c1c5bcfdb8 viene creato in /home/sk/mybackup posizione.

Ora è il momento di eseguire il backup dei dati nel repository appena creato.

Backup dei dati nella directory locale utilizzando Restic

Eseguirò il backup dell'intero ~/mydata directory (inclusa la directory stessa) nel repository ~/mybackup usando il comando:

$ restic -r ~/mybackup backup ~/mydata

Inserisci la password del tuo repository:

Risultato di esempio:

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

Come puoi vedere, restic ha creato il backup della directory specificata, ovvero mydata . Inoltre, ho creato un'istantanea del backup corrente con un nome univoco 7457d80e .

Analizziamo il comando precedente e vediamo cosa fa ciascuna opzione.

  • restic :Il comando restic
  • -r :indica il repository
  • ~/mybackup :nome del repository
  • backup - Sottocomando Restic per eseguire il backup di file/cartelle
  • ~/mydata - La directory di cui eseguire il backup.

Aggiungi più file/cartelle nella directory di backup. Ad esempio, ho aggiunto un nuovo file chiamato vi editor.pdf in ~/mydata directory. Ora, esegui di nuovo lo stesso comando restic:

$ 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 continuerà a creare nuovi snapshot con un nome univoco ogni volta che lo eseguiamo.

Poiché Restic esegue il backup incrementale, i backup successivi saranno piuttosto più veloci dei backup precedenti. Possiamo continuare ad aggiungere i dati nella cartella di backup ed eseguire il backup per creare molte istantanee.

Non solo le directory, Restic ci consente anche di eseguire il backup di singoli file.

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

Risultato di esempio:

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

Come vedi, nel repository viene creato un nuovo snapshot denominato 59439d78.

Elenca le istantanee

Per elencare gli snapshot disponibili in un repository locale, esegui:

$ restic -r ~/mybackup snapshots

Risultato di esempio:

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

Come vedi, ho 2 istantanee, ovvero 7457d80e e 963d4de3 .

Verifica la differenza tra due istantanee

Per verificare la differenza tra due istantanee, possiamo utilizzare diff opzione come di seguito:

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

Questo comando confronta le due istantanee fornite ed elenca le differenze, ovvero quali file vengono aggiunti, quanti file e directory vengono rimossi dal repository.

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

Come vedi, ho aggiunto un nuovo file pdf nel backup.

Escludi file e cartelle

È anche possibile escludere alcuni file o directory. Ad esempio, il comando seguente escluderà tutti i .doc digita i file:

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

In alternativa, puoi inserire la posizione effettiva di tutti i file e le cartelle che desideri escludere dal backup in un file e specificarne il percorso nel comando backup.

Ad esempio, crea un file denominato exclude :

$ vi exclude.txt

Aggiungi i file o le cartelle che desideri escludere:

*.txt
ostechnix.zip
mydata/movies

Ora avvia il processo di backup usando il comando:

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

Per maggiori dettagli su restic backup comando, eseguire:

$ restic help backup

Ora, abbiamo eseguito con successo il backup dei nostri dati. Successivamente vedremo come ripristinare i dati dal backup locale.

Ripristina i dati utilizzando Restic

Ripristinare i dati è facile!

Innanzitutto, elenca gli snapshot disponibili dal repository usando il comando:

$ restic -r ~/mybackup snapshots

Per ripristinare i dati da uno snapshot specifico, ad esempio 7457d80e , esegui:

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

Risultato di esempio:

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

Abbiamo appena ripristinato i dati dallo snapshot 7457d80e a ~/mydata directory.

Per ripristinare un singolo file dallo snapshot, facciamo:

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

Per maggiori dettagli, controlla il restore sezione della guida ai comandi.

$ restic help restore

Monta repository per visualizzare i dati di backup

Puoi sfogliare il backup come un normale file system. Questo è utile quando vuoi visualizzare il contenuto del repository.

Innanzitutto, crea un punto di montaggio:

$ mkdir ostechnix

Quindi, monta il tuo repository su otechnix punto di montaggio come mostrato di seguito.

$ restic -r ~/mybackup mount ostechnix/

Questo comando monterà il repository Restic nel tuo filesystem locale.

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.

Ora apri il tuo file manager e vedrai che il tuo repository è montato lì. Vai alla cartella delle istantanee e verifica i dati.

Quando hai finito, premi Ctrl-c per uscire o smontare il punto di montaggio dal File manager.

Per maggiori dettagli, controlla la sezione della guida:

$ restic help mount

Rimuovi istantanee

Innanzitutto, elenca tutti gli snapshot disponibili in un repository:

$ 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

Per eliminare uno snapshot, ad esempio 963d4de3 , esegui:

$ restic -r ~/mybackup forget 963d4de3

Risultato di esempio:

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

Controlla se l'istantanea è stata eliminata o meno:

$ 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

L'istantanea è sparita! Tuttavia, i dati a cui fanno riferimento i file in questo snapshot sono ancora archiviati nel repository.

Per ripulire i dati senza riferimenti, esegui:

$ restic -r ~/mybackup prune

Risultato di esempio:

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

Dopo aver rimosso tutti gli snapshot e i dati associati, puoi eliminare il repository.

$ rm -fr ~/mybackup/

Conclusione

Ora sai come installare e utilizzare il programma di backup Restic per salvaguardare i tuoi dati importanti. Abbiamo solo spiegato come eseguire il backup di file e cartelle nella directory locale con Restic. C'è dell'altro! Nelle nostre prossime guide, vedremo come eseguire il backup dei dati su un sistema remoto e su un cloud storage.

Ti consiglio anche di controllare la documentazione ufficiale Restic per un utilizzo più dettagliato.


Linux
  1. Come installare e testare Ansible su Linux

  2. MySQL:come eseguire il backup (scaricare) e ripristinare il database utilizzando mysqldump

  3. Come eseguire il backup e il ripristino di dati e configurazioni di RabbitMQ

  4. Come installare MongoDB dal sorgente (e usando YUM) su Linux

  5. Come costruire e installare GLFW 3 e usarlo in un progetto Linux

Come installare e utilizzare PuTTY su Linux

Come eseguire il backup e il ripristino del sistema Linux con Timeshift

Come eseguire il backup e il ripristino di file utilizzando BorgBackup in Linux

Come eseguire il backup di file e directory utilizzando Rsync in Linux

Come utilizzare Timeshift per eseguire il backup e il ripristino di Linux

Come clonare e ripristinare la partizione Linux usando il comando dd