GNU/Linux >> Linux Esercitazione >  >> Linux

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

In Linux sono disponibili più strumenti di backup che forniscono funzionalità per il backup a livello di sistema e per il backup dei dati dell'utente. In questo articolo completo, esamineremo cosa è BorgBackup e come eseguire il backup e il ripristino dei file utilizzando Borg in sistemi simili a Linux e Unix.

1. Introduzione

Quando ho a che fare con molti dati nel mio lavoro, le domande ovvie che mi vengono in mente all'inizio sono:1. Cosa succede se perdo i miei dati? 2. Quanto sono protetti i miei dati?

Lo stesso scenario verrà applicato alla macchina personale. Dovresti sempre eseguire il backup dei tuoi dati a seconda della loro importanza e proteggerli da accessi illegali.

Che si tratti dei tuoi dati personali o dei dati ufficiali, dovresti sempre pianificare una buona strategia di backup e utilizzare robusti strumenti di backup che ti aiuteranno a eseguire il backup dei tuoi dati importanti. Una delle applicazioni di backup opensource più consigliate e ampiamente utilizzate è "Borg" .

2. Cos'è Borg?

BorgBackup, in breve borg, è uno strumento di backup creato per fornire un modo efficiente per eseguire il backup dei dati utilizzando la tecnica di deduplicazione.

Alcune delle caratteristiche uniche di borg sono elencate di seguito.

  • Deduplicazione - La tecnica di deduplicazione memorizza solo le copie incrementali dei dati, perfette per eseguire backup giornalieri.
  • Multipiattaforma - Borg può essere installato e utilizzato in Linux, Mac OS X e FreeBSD.
  • Protetto - Supporta la crittografia dei dati utilizzando AES crittografia (256-bit), per verificarne l'autenticità HMAC-SHA256 viene utilizzato.
  • Compressione - I dati possono essere compressi utilizzando i seguenti metodi di compressione:
    • LZ4 -> Super veloce, a bassa compressione.
    • ZSTD -> Alta velocità e bassa compressione a bassa velocità e alta compressione.
    • ZLIB -> Velocità media, compressione media.
    • LZMA -> Bassa velocità, alta compressione.
  • Backup remoto - È possibile eseguire il backup dei dati su macchine remote tramite protocollo SSH.

3. Installa Borg in Linux

Borg è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux. Quindi, può essere installato utilizzando il gestore di pacchetti specifico della distribuzione.

Per installare borg in Alpine Linux, eseguire il comando seguente:

$ sudo apk add borgbackup

Per installare borg in Arch Linux e le sue varianti come EndeavourOS e Manjaro Linux, esegui il comando seguente:

$ sudo pacman -S borg

Installa borg nella distribuzione basata su Debian/Ubuntu:

$ sudo apt install borgbackup -y

Installa borg in Fedora, RHEL, CentOS, AlmaLinux e Rocky Linux:

$ sudo dnf install borgbackup -y

Installa Borg in openSUSE:

$ sudo zypper install borgbackup -y

Poiché borg è scritto in Python , puoi utilizzare il gestore di pacchetti python PiP per installare borg. A seconda della versione di pip installata, puoi eseguire uno dei seguenti comandi.

$ pip install borgbackup

Oppure,

$ pip3 install borgbackup

Una volta installato, puoi verificare l'installazione di Borg eseguendo la versione e i comandi della guida:

$ borg --version
$ borg --help

4. Fai il tuo primo backup usando Borg

Devi comprendere due termini importanti prima di eseguire il tuo primo backup.

  • Archivi - La copia di backup (istantanee) dei tuoi dati sarà denominata archivio.
  • Repository - Directory nel file system locale o remoto in cui sono archiviati gli archivi.

Innanzitutto inizializza un repository (directory) in cui verranno archiviati gli archivi.

Ho un elenco di file in una directory denominata "source" e creato una nuova directory denominata "backup" che fungerà da repository per l'archiviazione degli archivi.

5. Inizializza repository

Esegui borg init comando per inizializzare la directory di backup. La directory di backup può trovarsi in una macchina locale o in una macchina remota. Nel mio caso, sto inizializzando la directory (cioè backup ) che ho già creato.

$ borg init --encryption=none /home/karthick/borg/backup
$ borg init --encryption=repokey /home/karthick/borg/backup
$ borg init --encryption=keyfile /home/karthick/borg/backup

Quando inizializzi un repository puoi scegliere il tipo di crittografia . Quando utilizzi il tipo di crittografia come "Nessuno" , non verrà applicata alcuna crittografia. Quando utilizzi "repokey" e "file di chiavi" come tipi di crittografia utilizza AES-CTR-256 per la crittografia.

Scegli un tipo di crittografia qualsiasi ed esegui init comando. Nel mio caso, scelgo il tipo di crittografia come nessuno a scopo dimostrativo.

6. Eseguire il backup dei file utilizzando Borg

6.1. Crea il primo backup

Una volta inizializzato il repository, puoi creare archivi di backup eseguendo il comando seguente:

$ borg create --stats --progress /home/karthick/borg/backup::25-11-2021 /home/karthick/borg/source/

Qui sto fornendo il nome dell'archivio in formato data "25-11-2021" simulazione di backup giornalieri. Senza --stats e --progress flags, l'output del comando create sarà silenzioso.

6.2. Visualizza i file durante la creazione di backup

Puoi anche combinare il --list e -v flag per visualizzare l'elenco dei file nell'archivio durante l'esecuzione di borg create comando.

$ borg create --list -v /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/

6.3. Crea backup compressi

Per impostazione predefinita, borg utilizza lz4 algoritmo di compressione. L'algoritmo di compressione lz4 è molto veloce e ha un basso rapporto di compressione. Nel caso in cui desideri utilizzare un algoritmo di compressione diverso, puoi utilizzare --compression contrassegnare e passare il tipo insieme al livello di compressione.

Ad esempio, se desidero utilizzare zstd algoritmo, quindi il mio comando sarà il seguente.

$ borg create --compression zstd,1 /home/karthick/borg/backup/::27-11-2021 /home/karthick/borg/source/

Puoi dare un'occhiata ai diversi algoritmi di compressione e al relativo livello dalla documentazione ufficiale Borg .

6.4. Ottieni informazioni sull'archivio

Puoi usare le info comando per ottenere informazioni su un archivio specifico.

$ borg info /home/karthick/borg/backup/::25-11-2021

7. Elenca i backup

Usando l'borg list comando, puoi interrogare il tuo repository per trovare l'elenco degli archivi e quali file ci sono all'interno degli archivi.

Per ottenere solo l'elenco degli archivi, eseguire il comando seguente.

$ borg list /home/karthick/borg/backup

Risultato di esempio:

25-11-2021 Thu, 2021-11-25 13:16:53 [653d952301fc70ab9f2f74794361359144e05f5534e668ef4a4957d2c7f67937]
26-11-2021 Thu, 2021-11-25 13:19:51 [473bbe30fbe8597b63910310d567e69b501b2fb7127f04a78da76ab59d90114f]
27-11-2021 Thu, 2021-11-25 13:20:01 [0e6813f1a05246d43d196de9d28034d0397b4ae50cd20ee50163e347efee3e2a]

Puoi anche usare --json flag che fornirà maggiori informazioni sul repository e sull'elenco degli archivi in ​​json formato.

$ borg list --json /home/karthick/borg/backup

7.1. Elenca i file negli archivi

Per ottenere l'elenco dei file all'interno di un archivio, eseguire il comando seguente. Qui sto elencando i file dall'archivio "25-11-2021" .

$ borg list /home/karthick/borg/backup::25-11-2021

Risultato di esempio:

drwxrwxr-x karthick karthick 0 Thu, 2021-11-25 12:48:58 home/karthick/borg/source
-rw-r--r-- karthick karthick 807 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/project_profile.txt
-rw------- karthick karthick 2301 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/hist.txt
-rw-r--r-- karthick karthick 220 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/external.txt
-rw-r--r-- karthick karthick 3895 Mon, 2021-11-22 13:35:51 home/karthick/borg/source/config.txt

Puoi anche usare --json-lines flag per elencare i contenuti dell'archivio in JSON formato.

7.2. Escludi file e directory dal backup

Puoi escludere file e directory usando -e o --exclude bandiera.

$ borg list /home/karthick/borg/backup::25-11-2021 --exclude "hist"

8. Trova la differenza tra gli archivi

Puoi usare il diff comando per confrontare due archivi.

Sto creando un nuovo file chiamato datafile.txt sotto il source directory. Ho anche creato un altro archivio chiamato 28-11-2021 .

Ora posso confrontare il nuovo archivio e il vecchio archivio come di seguito:

$ borg diff /home/karthick/borg/backup/::27-11-2021 28-11-2021
added 2.89 kB home/karthick/borg/source/datafile.txt

9. Rinomina archivi

Una volta creato un archivio e se desideri rinominarlo puoi farlo usando il borg rename comando.

Diciamo se desidero rinominare l'archivio "27-11-2021" a "29-11-2021" , posso farlo eseguendo il seguente comando.

$ borg rename /home/karthick/borg/backup/::27-11-2021 29-11-2021

10. Ripristina i file usando borg (estrai i dati dall'archivio)

L'obiettivo principale del backup dei dati è ripristinarli quando necessario. Quindi puoi usare l'borg extract comando per recuperare i dati dagli archivi. Quando esegui extract comando, estrarrà i dati nella directory di lavoro corrente da cui stai eseguendo il comando di estrazione.

Eseguire il comando seguente per estrarre un archivio nella directory di lavoro corrente. Con il -v e --list flag aggiunto, ti mostrerà l'elenco dei file estratti.

$ borg extract -v --list backup/::25-11-2021

Puoi anche usare --dry-run flag che mostrerà solo ciò che verrà estratto invece di estrarlo.

$ borg extract --dry-run -v --list backup/::25-11-2021

È possibile estrarre una directory particolare dall'archivio passando il nome della directory. Dal momento che ho solo una directory nel mio archivio, la recupererà.

$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/

10.1. Escludi file dal ripristino

Puoi anche aggiungere --exclude per omettere i file durante l'estrazione di una directory. Qui sto estraendo tutti i file escludendo qualsiasi file con hist .

$ borg extract -v --list backup/::25-11-2021 home/karthick/borg/source/ --exclude "hist"

11. Monta e smonta repository e archivi

È possibile montare il repository o un particolare archivio come file system fuse. È quindi possibile ripristinare i file utilizzando l'archivio montato.

Per montare l'intero repository, esegui i seguenti comandi:

$ mkdir /tmp/borg/
$ borg mount /home/karthick/borg/backup/ /tmp/borg/
$ ls -l /tmp/borg/

Risultato di esempio:

drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 25-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 26-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 27-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:31 28-11-2021
drwxr-xr-x 1 karthick karthick 0 Nov 25 16:32 29-11-2021

Puoi vedere dall'output sopra tutti i miei archivi sono montati come directory e ora posso semplicemente ripristinarli copiando i file.

Per montare archivi particolari, aggiungi semplicemente il nome dell'archivio insieme al repository.

$ borg mount /home/karthick/borg/backup/::25-11-2021 /tmp/borg/

Per smontare il repository o gli archivi montati, usa borg umount comando.

$ borg umount /tmp/borg
$ ls -l /tmp/borg

12. Pota gli archivi

La borg prune Il comando sarà molto utile quando si automatizzano i backup e si desidera mantenere solo alcune copie e pulire le copie rimanenti.

Le opzioni nella tabella precedente decidono quante copie di archivio devono essere conservate nel tuo repository. Ad esempio, se desidero conservare solo 2 copie dal mio backup settimanale, il mio comando sarà il seguente.

$ borg prune -v --list --keep-weekly=2 /home/karthick/borg/backup/

Puoi anche applicare la suddetta condizione solo a determinati archivi. Ad esempio, diciamo che ho 10 archivi nel mio repository e desidero applicare la regola di conservazione per archive7, quindi posso usare il --prefix flag per impostare la condizione.

$ borg prune -v --list --keep-weekly=2 --prefix='{archive name}' /home/karthick/borg/backup/

Prima di eseguire prune comando, eseguire una prova utilizzando il --dry-run bandiera.

13. Elimina repository e archivio

Puoi eliminare un archivio o l'intero repository usando borg delete comando.

Per eliminare un singolo archivio, devi fornire il nome dell'archivio.

$ borg delete /home/karthick/borg/backup/::26-11-2021

Per eliminare l'intero archivio, è sufficiente fornire il percorso del repository. Quando elimini l'intera directory, ti verrà chiesto di fornire conferma.

$ borg delete /home/karthick/borg/backup/

14. Cambia passphrase chiave

Fino ad ora ho mostrato il mio esempio senza applicare alcuna crittografia al repository. Come predetto nella sezione iniziale, puoi inizializzare una directory con la crittografia abilitata e se repokey o keyfile viene utilizzato, ti chiederà di impostare la passphrase facoltativamente.

$ borg init --encryption=repokey /home/karthick/borg/bkup/

D'ora in poi, ogni volta che provo a eseguire qualsiasi operazione su questo repository, dovrei fornire ogni volta la passphrase. Dai un'occhiata all'immagine qui sotto, sto cercando di elencare il repository e devo fornire una passphrase per esso.

Ora supponiamo che desideri cambiare la passphrase, quindi puoi farlo usando il borg change-passphrase comando.

$ borg key change-passphrase -v /home/karthick/borg/bkup

Puoi anche impostare la passphrase usando le variabili di ambiente.

$ BORG_PASSPHRASE="old password" BORG_NEW_PASSPHRASE="new password" borg key change-passphrase /home/karthick/borg/bkup

15. Esporta e importa chiave

Puoi eseguire il backup della chiave del repository esportandola e successivamente importandola, se necessario.

Per esportare la chiave, esegui il seguente comando:

$ borg key export bkup/ ./key
$ cat ./key

Per importare la chiave nello stesso repository, esegui il comando seguente:

$ borg key import bkup/ ./key

16. Lavorare con repository remoti

Tutto ciò che abbiamo visto fino ad ora è il backup dei tuoi dati nella stessa macchina. Borg supporta anche repository remoti in cui è possibile eseguire il backup dei dati in qualsiasi macchina remota. L'host remoto dovrebbe essere accessibile tramite SSH.

Sintassi:

$ borg init [email protected]:/path/to/repo

Esempio:

$ borg init [email protected]:/home/karthick/borg/bkup

Puoi eseguire tutti i tipi di operazioni simili che puoi eseguire con il backup locale. Ad esempio, per ripristinare il backup puoi utilizzare extract e puoi anche usare il mount comando per montare un repository remoto.

Qui quando si punta alla directory remota devi indicare il protocollo ssh come "ssh://[email protected]:port/path/to/repo ".

$ borg mount ssh://[email protected]:2222/home/karthick/borg/bkup /tmp/borg
$ borg extract ssh://[email protected]:2222/home/karthick/borg/bkup

17. Client desktop con interfaccia grafica Borg

Poiché BorgBackup è puramente uno strumento da riga di comando, è quasi impossibile ricordare tutti i comandi. Alcuni di voi potrebbero preferire una bella applicazione grafica che consente di eseguire il backup dei dati tramite un'interfaccia grafica. Non preoccuparti!

Vorta è un client desktop GUI per BorgBackup. Usando Vorta, puoi facilmente integrare l'applicazione Borg nel tuo ambiente desktop preferito. Non c'è bisogno di memorizzare i comandi. Tutto può essere fatto tramite una semplice interfaccia grafica!

Per maggiori dettagli su come installare e utilizzare Vorta, fare riferimento alla seguente guida.

  • Vorta:un frontend grafico per BorgBackup

18. Conclusione

In questo articolo, abbiamo visto come utilizzare borg per eseguire il backup e il ripristino dei dati in Linux. Borg ha così tante funzionalità che puoi comprendere testando lo strumento. Una buona alternativa per borg sarà Timeshift per eseguire il backup a livello di sistema e rsync per prendere i file e le directory degli utenti.


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

  2. Come eseguire il backup e il ripristino delle impostazioni dell'applicazione utilizzando Mackup su un sistema Linux appena installato

  3. Come eseguire il backup e il ripristino del repository SVN in Linux

  4. Come archiviare e comprimere file su Linux

  5. Come eseguire il backup e il ripristino del database in PostgreSQL

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

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

Come eliminare file e directory utilizzando la riga di comando di Linux