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 Sì , 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:
- Rubrica locale,
- server sftp (tramite SSH),
- Server HTTP REST,
- AWS S3,
- OpenStack Swift,
- BackBlaze B2,
- Archiviazione BLOB di Microsoft Azure,
- Google Cloud Storage,
- 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 repositorybackup
- 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.