GNU/Linux >> Linux Esercitazione >  >> Linux

Tranquillità con Restic Backup su Linux

Il backup è una delle cose più critiche in ogni settore e potresti essere alla ricerca della soluzione di backup più affidabile. Perché non provare il backup Restic su Linux?

Restic è una soluzione di backup sicura, veloce e affidabile. E in questo tutorial imparerai a configurare il sistema di backup Restic su un server Linux.

Continua a leggere e non perdere mai più i tuoi dati!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Per seguire, assicurati di avere quanto segue:

  • Due server Linux:questo tutorial utilizza due server Debian 11 denominati server1 e server di backup .
  • Un utente non root con privilegi sudo.

Installazione di Restic su Linux

Restic archivia i dati nel repository crittografato e ogni volta che aggiungi dati al repository, Restic crea automaticamente un nuovo snapshot. Ma prima di sfruttare l'utilità di backup di Restic, devi prima installare Restic sul tuo computer.

1. Apri il tuo terminale e accedi a server1 macchina.

2. Quindi, esegui wget comando seguente per scaricare il file binario Restic. Al momento della stesura di questo articolo, l'ultima versione di Restic è la v0.12.1.

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

3. Esegui i seguenti comandi per estrarre il restic_0.12.1_linux_amd64.bz2 e verifica il restic_0.12.1_linux_amd64 esiste un file binario.

# 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. Ora esegui chmod comando per creare il restic_0.12.1_linux_amd64 file eseguibile, quindi rinomina e sposta il file nel /usr/bin/restic directory.

A questo punto, puoi ora eseguire il comando restic sul tuo server.

# 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. Esegui il restic comando seguente per generare il completamento bash per Restic. In questo modo, gli utenti possono eseguire facilmente restic comando.

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

6. Infine, esegui il comando seguente per ricaricare il completamento bash sulla sessione del terminale corrente, quindi esegui restic comando e premi TAB per mostrare le opzioni disponibili per restic comando.

Infine, esegui i seguenti comandi per ricaricare il completamento di bash nella sessione del terminale corrente. Digita restic e premi il tasto TAB per mostrare le opzioni disponibili per il comando restic.

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

# verify restic command
restic

Dovresti vedere tutte le opzioni disponibili del comando restic, come mostrato di seguito.

Configurazione di un server di backup

Ora che hai installato Restic su server1 macchina, il passaggio successivo consiste nell'impostare il backup-server , così puoi iniziare a eseguire il backup dei tuoi dati tramite il protocollo SFTP.

Per impostazione predefinita, Restic consente di eseguire il backup dei dati nella directory locale, nel server remoto e nel protocollo SFTP. Restic consente inoltre di eseguire il backup dei dati su servizi di backup su cloud di terze parti come Amazon S3, Azure Blog Storage, Backblaze B2 e Google Cloud Storage.

1. Apri un nuovo terminale e accedi a backup-server macchina.

2. Quindi, esegui il comando seguente per creare un nuovo utente denominato johndoe e impostare una password.

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

# setup the password
passwd johndoe

3. Esegui ogni comando seguente per creare una nuova directory di backup (/srv/backup ) per Restic e cambia la proprietà (chown ) al johndoe utente e gruppo. Questa directory memorizzerà tutti i dati di backup dal server1 macchina.

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

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

4. Ora passa a server1 macchina ed eseguire il comando seguente per generare una chiave SSH.

Invece di utilizzare l'autenticazione basata su password, opterai per l'autenticazione basata su chiave. Una chiave SSH è essenziale, soprattutto quando si configura un backup automatico con uno script di shell o si utilizzano processi Cron.

ssh-keygen

Premere INVIO alle seguenti richieste, come mostrato di seguito. In questo modo si imposta la posizione di salvataggio della chiave SSH sulla directory predefinita (~/.ssh) e si disabilita la password per la chiave privata SSH.

A questo punto, nella directory ~/.ssh, avrai i file id_rsa (chiave privata SSH) e id_rsa.pub (la tua chiave pubblica).

5. Esegui ls comando seguente per verificare che id_rsa e id_rsa.pub esistono file nel ~/.ssh directory.

ls ~/.ssh/

6. Quindi, esegui ssh-copy-id comando seguente per caricare la chiave pubblica SSH in backup-server . In questa demo, il backup-server utilizza il nome utente johndoe e l'indirizzo IP 172.16.1.150 .

ssh-copy-id [email protected]

Al termine del caricamento, riceverai il messaggio Numero di chiavi aggiunte:1 sul tuo terminale.

7. Infine, esegui ssh comando di seguito per verificare e connetterti al backup-server .

ssh [email protected]

Nota che hai eseguito automaticamente l'accesso al server di backup senza l'autenticazione della password.

Inizializzazione di un nuovo repository

Ora hai configurato il server di backup Restic, quindi il passaggio successivo è inizializzare un nuovo repository. Restic memorizzerà i dati di backup in un repository e ogni azione di backup crea una nuova istantanea all'interno di quel repository.

1. Esegui restic comando seguente per inizializzare (init ) un repository (-r :/srv/backup ) utilizzando il protocollo SFTP.

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

2. Immettere una password complessa per il repository e confermare la password. Ricorda la password, poiché la utilizzerai per decrittografare i tuoi dati di backup.

Come mostrato di seguito, il nuovo repository (a9073b62d0) viene creato sul server SFTP (sftp:[email protected]:/srv/backup).

3. Infine, esegui restic comando seguente per verificare il repository. Ti verrà chiesto di inserire la password che hai annotato in precedenza per il repository (passaggio due).

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

Se non ci sono errori, riceverai il messaggio Nessun errore trovato, mostrato di seguito.

Backup dei dati in un repository

Ora hai inizializzato il repository utilizzando il server SFTP su backup-server . Ma come si esegue il backup dei dati con Restic? Eseguirai il backup dei dati da server1 al repository nel backup-server .

1. Esegui restic comando di seguito per eseguire il backup dei dati dal /var/www/wordpress directory nel repository.

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

Immettere la password per il repository e, al termine del processo di backup, Restic crea lo snapshot (736949a9), come mostrato di seguito.

2. Quindi, esegui il comando seguente per elencare tutti i snapshots .

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

Assicurati che lo snapshot (736949a9) sia disponibile nell'elenco, come mostrato di seguito

3. Esegui il comando seguente per elencare tutti i file (ls ) sullo snapshot (736949a9 ).

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

Vedrai l'elenco dei file nello snapshot (736949a9), ovvero i dati di backup dalla directory /var/www/wordpress/.

Inoltre, puoi eseguire il comando seguente per eseguire il backup di più directory (/var/www/wordpress e /var/www/html) nello stesso repository.

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

Nota di seguito che Restic ha creato un nuovo snapshot (7b6e321e).

4. Ora, esegui ogni comando di seguito per elencare tutte le istantanee, le statistiche dei file di backup e la differenza tra due istantanee (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

Di seguito, gli snapshot 736949a9 e 7b6e321e hanno gli stessi dati di backup (/var/www/wordpress). Nota che anche le dimensioni dei file nel repository sono le stesse poiché Restic esegue solo il backup delle modifiche ai file, rendendo Restic veloce ed efficiente.

Esclusione di file nei processi di backup

Il backup dei dati è utile, ma come si escludono i dati non necessari? Restic ti consente di escludere file/directory con --exclude-file opzione durante il processo di backup.

Il --exclude-file l'opzione può escludere i file spazzatura, come i file di registro, rendendo il processo di backup più veloce e più pulito.

1. Esegui il comando seguente per creare una nuova directory chiamata /opt/backup per memorizzare i file di backup.

mkdir -p /opt/backup

2. Quindi, crea un nuovo file (/opt/backup/excludes.txt ) utilizzando il tuo editor di testo preferito e compila la configurazione seguente.

La configurazione seguente indica a Restic di escludere file con tipi di file diversi.

# excludes files .zip
*.tar.gz

# excludes directory logs
logs

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

3. Esegui il comando seguente per eseguire il backup dei dati da /var/www/html directory nel repository (-r :/srv/backup ). Il --exclude-files opzione dice a Restic di escludere i file e le directory elencate in exludes.txt file.

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

Di seguito, il nuovo snapshot di backup ca99be01 viene creato da Restic, esclusi i file che hai specificato in excludes.txt file.

4. Ora, esegui il comando seguente per verificare l'elenco dei file (ls ) sullo snapshot ca99be01 .

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

Vedrai tutti i file di backup tranne quelli che hai definito nel file di configurazione (excludes.txt ).

5. Infine, esegui tree comando seguente per verificare l'esclusione dei dati funziona con Restic.

tree /var/www/html/

Come vedi sotto, la directory /var/www/html contiene file di testo all'interno, ma Restic non li ha esclusi dal backup.

Rimozione di snapshot dal repository

Nella maggior parte dei casi, potrebbero essere necessarie solo due o tre versioni di snapshot al più tardi. Allora perché non rimuovere le vecchie istantanee? La rimozione degli snapshot richiede la conoscenza dell'ID dello snapshot, quindi controlla prima l'elenco degli snapshot.

1. Eseguire il comando seguente per elencare tutti gli snapshot nel repository.

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

Scegli un ID dello snapshot da rimuovere (736949a9).

2. Quindi, esegui i seguenti comandi per rimuovere (forget ) istantanea specifica (736949a9 ), e i suoi dati rimanenti dal repository.

# 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. Esegui il comando seguente per eseguire un --dry-run e vedere quali snapshot verranno rimossi (forget ) e quali due versioni di snapshot verranno conservate (--keep-last 2 ).

Prima di eliminare le istantanee, si consiglia sempre un ciclo di prova per evitare di perdere istantanee importanti.

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

4. Esegui il comando seguente per rimuovere (forget ) vecchie versioni di snapshot e mantieni le ultime due (--keep-last 2 ) dal repository.

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

5. Infine, esegui il comando seguente per elencare tutte le istantanee esistenti.

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

Di seguito puoi vedere che rimangono solo le ultime due versioni di snapshot.

Ripristino dei dati nel repository

Forse hai rimosso accidentalmente dati cruciali dal repository. Se sì, come recuperarli? Fortunatamente, Restic ti consente di decrittografare e ripristinare i dati di backup purché tu conosca l'ID snapshot del backup.

1. Esegui restic comando seguente per controllare gli snapshot disponibili nel repository.

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

Di seguito è riportato un esempio di snapshot disponibili nel repository. Prendere nota dell'ID snapshot dei dati di backup da ripristinare.

2. Quindi, esegui i seguenti comandi per creare una directory di ripristino (/opt/restore ) e ripristina lo snapshot di destinazione (6b44ac32 ) in quella directory di ripristino.

# 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. Infine, esegui ls comando seguente per verificare i dati ripristinati.

ls /opt/restore/var/www/wordpress

Come mostrato di seguito, vedrai l'elenco dei file ripristinati dallo snapshot (6b44ac32).

Ripristino di file specifici

Hai appena ripristinato i dati persi, ma cosa succede se hai solo bisogno di ripristinare un file specifico? Con Restic, puoi scegliere come target un file specifico aggiungendo il --include opzione nel restic comando.

1. Eseguire il comando seguente per creare una directory in cui conservare il file specifico da ripristinare da uno snapshot.

mkdir -p /opt/restore/specific

2. Quindi, esegui restic comandi seguenti per ripristinare una directory specifica (/var/www/wordpress/wp-content ) e un file specifico (wp-config.php ) dall'istantanea (6b44ac32 ). Ogni comando imposta la directory di ripristino di destinazione sul /opt/restore/specific directory.

# 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. Infine, esegui ls comando seguente per verificare il file e la directory ripristinati nella directory (/opt/restore/specific ).

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

Se il ripristino ha funzionato correttamente, vedresti la directory (wp-content) e il file (wp-config.php) ripristinati dallo snapshot (6b44ac32).

Backup automatico dei dati con Restic e Cron

A questo punto, hai già imparato tutto l'utilizzo di base dello strumento di backup Restic. Ma poiché il backup manuale dei dati può essere una seccatura, perché eseguire automaticamente il backup dei dati sul tuo sistema Linux? Restic, insieme a Cron, può fare miracoli, come automatizzare il processo di backup dei dati.

1. Crea un nuovo file (/opt/backup/.secret ) utilizzando il tuo editor preferito e inserisci la password del tuo repository. Questa demo utilizza la password ResticRepositoryPassword per il repository Restic.

2. Quindi, esegui il comando seguente per modificare l'autorizzazione del /opt/backup/.secret file in 600 . Il codice di autorizzazione 600 concede il permesso di lettura e scrittura solo al /opt/backup/.secret proprietario del file.

chmod 600 /opt/backup/.secret

3. Esegui crontab comando seguente per creare un nuovo lavoro Cron. Il -u root l'opzione indica che il lavoro Cron verrà eseguito come utente root.

crontab -u root -e

4. Seleziona il tuo editor preferito e il file di configurazione Cron si apre in quell'editor. Ma questa demo usa il nano editore.

5. Infine, popolare la configurazione di Cron con la configurazione seguente per impostare il backup automatico e salvare le modifiche.

Lo script seguente esegue quanto segue:

  • Esegui restic comanda ogni 1.AM nelle directory di backup (/var/www/wordpress/var/www/html ) al server SFTP del repository (sftp:[email protected]:/srv/backup ).
  • Elimina automaticamente la vecchia istantanea in 2.AM e conserva le ultime due versioni degli snapshot.
  • Specifica (--password-file ) il file (/opt/backup/.secret ) che contiene la tua password per il repository Restic, quindi non devi codificare la tua password nella configurazione di Cron.
# 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

Conclusione

In questo tutorial, hai imparato come installare Restic su Linux e diversi modi per eseguire il backup dei tuoi dati, dalle directory a file specifici con snapshot. Oltre al backup dei dati, hai scoperto che puoi ripristinare i dati persi inaspettatamente. L'automazione gioca un ruolo importante nel backup dei tuoi dati, quindi mantieni i lavori Cron in esecuzione per proteggere i tuoi dati.

A questo punto, sei pronto per eseguire il backup di più dati utilizzando Restic. E perché non sfruttare il backup utilizzando tag, criteri di filtraggio e servizi cloud di backup?


Linux
  1. Crea musica su Linux con Ardor

  2. Modifica l'audio su Linux con Audacity

  3. Gestione pacchetti Linux con apt

  4. Cosa c'è di nuovo con rdiff-backup?

  5. Comando JQ in Linux con esempi

Comando IP Linux con esempi

15 Comando Linux ps con esempi

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

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

Backup e ripristino delle impostazioni del sistema desktop Linux con Dconf

ReaR:esegui il backup e il ripristino del tuo server Linux in tutta sicurezza