|
Dimensione: 6613
Commento:
|
← Versione 64 del 17/11/2025 11.22.03 ⇥
Dimensione: 11714
Commento: +sintassi_zstd
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 6: | Linea 6: |
| <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=599983"; rilasci="20.04 18.04")>> | <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=599983"; rilasci="24.04 22.04 20.04 18.04")>> |
| Linea 9: | Linea 10: |
| Con '''Ubuntu''' è possibile eseguire un backup dell'intero sistema con gli stessi strumenti utilizzati per archiviare o comprimere ogni altro file: '''tar'''. | Con '''Ubuntu''' è possibile eseguire un backup dell'intero sistema con gli stessi strumenti utilizzati per archiviare o comprimere ogni altro file: '''[[https://it.wikipedia.org/wiki/Tar_(software)|tar]]'''. |
| Linea 14: | Linea 15: |
| Nel caso non fosse presente, è sufficiente [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://tar|tar]]. | Se si è su sistema [[Installazione/CdMinimale|minimale]] nel caso non fosse presente, [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://tar|tar]]. |
| Linea 20: | Linea 21: |
| 0. Spostarsi nella directory o partizione di destinazione del backup, digitando in un [[AmministrazioneSistema/Terminale|terminale]] il comando: {{{ cd `/directory_destinazione_backup` }}} 0. Per effettuare il backup del sistema `/` digitare il seguente comando: {{{ sudo tar -cvpzf /backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys / }}} |
0. Spostarsi nella directory o partizione di destinazione del backup, digitando in un [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{ cd `/directory_destinazione_backup` }}} 0. Per effettuare il backup del sistema /, digitare il seguente comando:{{{ sudo tar -cvpzf /backup.tgz --exclude=/proc --exclude=/lost_found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls / }}}Questo comando include le opzioni essenziali per preservare permessi, attributi estesi e ACLs, fondamentali per un ripristino funzionale. {{{#!wiki note Per i sistemi che utilizzano SELinux (come Fedora, RHEL, CentOS e OpenSUSE), è fondamentale aggiungere anche l'opzione '''--selinux''' al comando di backup per preservare i contesti di sicurezza. }}} |
| Linea 31: | Linea 35: |
| ||<tablestyle="width: 70%;" rowstyle="background-color: #cccccc;" 20%:>'''Opzione'''||<80%:> '''Risultato''' || ||<:>'''tar''' || È il programma di archiviazione utilizzato per eseguire il backup. || |
||<tablestyle="width:50%;" -2:>'''Sintassi opzioni'''|| ||<:30%> '''Opzione''' || Risultato || ||<:>'''tar''' || Programma di archiviazione utilizzato per eseguire il backup. || |
| Linea 34: | Linea 39: |
| ||<:>'''-v''' || Modalità verbose: '''tar''' restituisce sullo schermo una descrizione delle operazioni in corso. || ||<:>'''-p''' || Mantiene i permessi di tutti i file. || ||<:>'''-z''' || Comprime il file di backup con '''gzip''' per renderlo più piccolo. || ||<:>'''-f <nomefile>''' || Specifica dove salvare il backup (`/backup.tgz` è il file utilizzato in questo esempio). || |
||<:>'''-v''' || Modalità verbose: tar restituisce sullo schermo una descrizione delle operazioni in corso. || ||<:>'''-p''' || Mantiene i permessi POSIX di tutti i file. || ||<:>'''-z''' || Comprime il file di backup con gzip per ridurne le dimensioni. || ||<:>'''-f <nomefile>''' || Specifica il percorso di salvataggio del backup (`/backup.tgz` è il file utilizzato in questo esempio). || |
| Linea 39: | Linea 44: |
| ||<:>'''/''' || Specifica '''/''' come directory di backup (`/`, root). || | ||<:>'''--xattrs''' || Preserva gli attributi estesi dei file (extended attributes). Essenziale per un ripristino completo. || ||<:>'''--acls''' || Preserva le liste di controllo accessi (Access Control Lists - ACLs). Essenziale per un ripristino completo. || ||<:>'''--selinux''' || Preserva i contesti di sicurezza SELinux. Fondamentale per i sistemi che utilizzano SELinux. || ||<:>'''/''' || Specifica / come directory di backup (root). || |
| Linea 43: | Linea 51: |
| Si consiglia di non includere le cartelle di sistema `/mnt` e `/media`, poiché nel caso siano presenti altre partizioni montate verrebbe eseguito il backup anche di queste. |
Si consiglia di non includere le cartelle di sistema `/mnt` e `/media`, poiché la loro inclusione comporterebbe il backup di altre partizioni eventualmente montate. È altresì consigliabile escludere le directory `/run`, `/tmp`, `/var/tmp`, `/var/run` e `/dev`, in quanto contengono file temporanei, dati di runtime e file speciali di periferica che vengono ricreati dinamicamente all'avvio del sistema e non sono necessari per un ripristino efficace. |
| Linea 47: | Linea 54: |
| Non è necessario fare il backup di tutto il sistema poiché alcune directory non sono indispensabili (compreso il file di backup stesso). | Non è necessario effettuare il backup di tutto il sistema, dato che alcune directory non sono indispensabili (compreso il file di backup stesso e quelle contenenti dati temporanei, di runtime o file speciali di periferica). |
| Linea 49: | Linea 56: |
| Linea 53: | Linea 59: |
| Al nome del file di backup è possibile aggiungere la data di esecuzione dello stesso. A tale scopo è sufficiente aggiungere la seguente dicitura al comando di backup: {{{ |
Al nome del file di backup è possibile aggiungere la data di esecuzione. A tale scopo, è sufficiente inserire la seguente dicitura nel comando di backup:{{{ |
| Linea 58: | Linea 63: |
| Il comando aggiungerà al nome del file una data in formato «giorno-mese-anno», simile al seguente esempio: {{{ sudo tar -cvpjf /backup-`date+%d-%m-%Y`.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup-`date+%d-%m-%Y`.tar.bz2 --exclude=/mnt --exclude=/sys / |
Il comando aggiungerà al nome del file una data in formato «giorno-mese-anno», come nel seguente esempio:{{{ sudo tar -cvpjf /backup-`date+%d-%m-%Y`.tar.bz2 --exclude=/proc --exclude=/lost_found --exclude=/backup-`date+%d-%m-%Y`.tar.bz2 --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls / |
| Linea 63: | Linea 67: |
| = Compressione della directory = | {{{#!wiki note Ricordarsi di aggiungere `--selinux` anche qui se il sistema lo richiede. }}} |
| Linea 65: | Linea 71: |
| È possibile anche utilizzare '''bzip2''' per comprimere il file di backup. Questo porta un maggiore compressione, seppur a discapito di una minore velocità. | = Compressione della Directory = |
| Linea 67: | Linea 73: |
| Per utilizzare '''bzip2''' sostituire nel comando di creazione del backup l'opzione '''z''' con '''j''' e modificare l'estensione del file di backup, come nel seguente esempio: {{{ sudo tar -cvpjf /backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys / |
È possibile utilizzare diversi algoritmi di compressione per il file di backup. == Compressione con bzip2 == È possibile anche utilizzare '''bzip2''' per comprimere il file di backup. Questo porta una maggiore compressione, seppur a discapito di una minore velocità rispetto a '''gzip'''. Per utilizzare '''bzip2''', sostituire nel comando di creazione del backup l'opzione ''z'' con ''j'' e modificare l'estensione del file di backup, come nel seguente esempio:{{{ sudo tar -cvpjf /backup.tar.bz2 --exclude=/proc --exclude=/lost_found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls / }}} {{{#!wiki note Ricordarsi di aggiungere --selinux anche qui se il sistema lo richiede. }}} == Compressione con Zstd (Raccomandato) == '''Zstd''' (Zstandard) è un algoritmo di compressione moderno che offre un eccellente bilanciamento tra velocità e rapporto di compressione, spesso superando '''gzip''' e '''bzip2'''. Supporta anche il multithreading, accelerando notevolmente le operazioni su CPU moderne. Per utilizzare `zstd` con il multithreading, è necessario utilizzare l'opzione `-I` di '''tar''' e specificare il comando `zstd` con l'opzione '''-T$(nproc)''' che sfrutta tutti i core della CPU disponibili. L'estensione del file sarà solitamente `.tar.zst`.{{{ sudo tar -cvpI 'zstd -T$(nproc)' -f /backup.tar.zst --exclude=/proc --exclude=/lost_found --exclude=/backup.tar.zst --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls / }}} Per una compressione `zstd` a singolo thread (o se `zstd` non supporta '''-T''' o non si vuole il multithreading), si può anche usare la scorciatoia '''--zstd''' direttamente con tar (se la versione di tar lo supporta) o `-I 'zstd'`: * Con l'opzione nativa di tar (se disponibile):{{{ sudo tar -cvp --zstd -f /backup.tar.zst --exclude=/proc --exclude=/lost_found --exclude=/backup.tar.zst --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls / }}} * Oppure forzando `zstd` senza multithreading:{{{ sudo tar -cvpI 'zstd' -f /backup.tar.zst --exclude=/proc --exclude=/lost_found --exclude=/backup.tar.zst --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls / }}} {{{#!wiki note Ricordarsi di aggiungere --selinux anche qui se il sistema lo richiede. |
| Linea 74: | Linea 110: |
| Prestare molta attenzione alle istruzioni seguenti, poiché in caso di errori si possono sovrascrivere file importanti per il sistema. Il comando seguente sovrascriverà tutti i file del sistema con quelli presenti nell'archivio di backup.}}} | Prestare molta attenzione alle istruzioni seguenti. Errori potrebbero sovrascrivere file importanti per il sistema. Il comando seguente sovrascriverà tutti i file del sistema con quelli presenti nell'archivio di backup. }}} |
| Linea 76: | Linea 113: |
| Per ripristinare il backup non c'è bisogno di entrare in una modalità speciale del sistema operativo, infatti è possibile farlo con il sistema in esecuzione. Nel caso in cui non si riesca ad accedere al sistema, è possibile utilizzare un DVD/USB live per ottenere gli stessi risultati. | Per ripristinare il backup, non è necessario accedere a una modalità speciale del sistema operativo; è possibile farlo con il sistema in esecuzione. Nel caso in cui l'accesso al sistema non sia possibile, è utilizzabile un DVD/USB live per ottenere gli stessi risultati. |
| Linea 78: | Linea 115: |
| È possibile rimuovere qualsiasi file dal sistema mentre questo è in esecuzione, con tutto ciò che questo comporta al successivo riavvio. | È possibile rimuovere qualsiasi file dal sistema mentre questo è in esecuzione, con tutte le implicazioni al successivo riavvio. |
| Linea 81: | Linea 118: |
| 0. Per eseguire il ripristino, assicurarsi di includere le stesse opzioni di compressione, '''--xattrs''', '''--acls''' e '''--selinux''' (se usata) che sono state usate durante la creazione del backup. Digitare in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: * Per backup `gzip` (.tgz):{{{ sudo tar -xvpzf /backup.tgz -C / --xattrs --acls }}} * Per backup `bzip2` (.tar.bz2):{{{ sudo tar -xvpjf backup.tar.bz2 -C / --xattrs --acls }}} * Per backup `zstd` (.tar.zst) con compressione esterna (-I):{{{ sudo tar -xvpI 'zstd -d -T$(nproc)' -f /backup.tar.zst -C / --xattrs --acls }}}Usare `zstd -d` per la decompressione, con '''-T$(nproc)''' se usato in compressione. * Per backup `zstd` (.tar.zst) con opzione nativa (--zstd):{{{ sudo tar -xvp --zstd -f /backup.tar.zst -C / --xattrs --acls }}} 0. Premere '''Invio''' per avviare il ripristino. 0. Al termine della procedura, assicurarsi di ricreare eventuali directory escluse durante il backup nel caso siano state compromesse (ad esempio `/proc`, `/lost+found`, `/mnt`, `/sys`, `/run`, `/tmp`, `/var/tmp`, `/var_run`, `/dev`, ecc.):{{{ sudo mkdir /proc /lost_found /mnt /sys /run /tmp /var/tmp /var_run /dev }}} |
|
| Linea 82: | Linea 136: |
| 0. Per eseguire il ripristino, digitare il seguente comando in un terminale: {{{ sudo tar -xvpzf /backup.tgz -C / |
Al successivo riavvio, l'intero sistema sarà stato ripristinato. Alcune opzioni per ripristino: ||<tablestyle="width:50%;" -2:>'''Sintassi opzioni'''|| ||<:30%> '''Opzione''' || Risultato || ||<:>'''x''' || estrae i file dall'archivio. || ||<:>'''-C <directory>''' || sposta in una specifica directory, in questo caso /, prima di estrarre i file. || ||<:>'''--xattrs''' || Ripristina gli attributi estesi. || ||<:>'''--acls''' || Ripristina le liste di controllo accessi. || ||<:>'''--selinux''' || Ripristina i contesti di sicurezza SELinux. || {{{#!wiki note Se il backup è stato creato con '''--selinux''', è indispensabile includerlo anche nel comando di ripristino, dopo le opzioni di compressione e '''f <file>'''. |
| Linea 85: | Linea 151: |
| Nel caso in cui sia stato utilizzato '''bunzip2''', digitare invece il seguente comando: {{{ sudo tar -xvpjf backup.tar.bz2 -C / }}} Alcune opzioni: * '''x''': serve per estrarre i file nell'archivio * '''-C <directory>''': serve per spostarsi in una specifica directory, in questo caso `/`, prima di estrarre i file. 0. Premere '''Invio''' per avviare il ripristino. 0. Al termine della procedura, assicurarsi di ricreare eventuali directory escluse durante il backup nel caso siano state compromesse (ad esempio `/proc`, `/lost+found`, `/mnt`, `/sys` ecc.): {{{ sudo mkdir /proc /lost+found /mnt /sys }}} Al successivo riavvio tutto il sistema sarà stato ripristinato. |
|
| Linea 101: | Linea 154: |
| Qualora il disco fisso non abbia abbastanza spazio o non fosse possibile montarne un altro in cui salvare il backup, è possibile usare '''netcat''' per spostare il file di backup. | Qualora il disco fisso non disponga di spazio sufficiente o non fosse possibile montarne un altro per salvare il backup, è possibile usare `netcat` per spostare il file di backup. |
| Linea 103: | Linea 156: |
| Dalla parte del ricevente, impostare '''netcat''' in modo da scrivere il backup in questo modo: {{{ nc -l -p 1024 > backup.tar.bz2 }}} |
Dalla parte del ricevente, impostare `netcat` in base al tipo di compressione utilizzata: |
| Linea 107: | Linea 158: |
| Quindi mettere in pipe il comando per eseguire il backup con '''netcat''', senza il flag '''f''', come in questo esempio: {{{ sudo tar -cvpj <tutte le altre opzioni> / | nc -q 0 <host di ricezione> 1024 |
* Per backup `gzip` (.tgz):{{{ nc -l -p 1024 > backup.tgz }}} * Per backup `bzip2` (.tar.bz2):{{{ nc -l -p 1024 > backup.tar.bz2 }}} * Per backup `zstd` (.tar.zst):{{{ nc -l -p 1024 > backup.tar.zst }}} Quindi, inviare in pipe il comando per eseguire il backup con `netcat`, senza il flag '''-f''', e ricordando di includere '''--xattrs''', '''--acls''' e '''--selinux''' (se usato), come in questo esempio (per `bzip2`):{{{ sudo tar -cvpj <tutte le altre opzioni> --xattrs --acls / | nc -q 0 <host_di_ricezione> 1024 }}}O per `zstd` con multithreading:{{{ sudo tar -cvpI 'zstd -T$(nproc)' <tutte le altre opzioni> --xattrs --acls / | nc -q 0 <host_di_ricezione> 1024 |
| Linea 112: | Linea 175: |
| «1024» si riferisce al numero di una porta. Utilizzare un numero pari a 1024 o superiore. | «1024» si riferisce al numero di una porta. Utilizzare un numero pari a 1024 o superiore. Ricordarsi di aggiungere --selinux anche qui se il sistema lo richiede. |
| Linea 115: | Linea 178: |
| Se tutto è andato a buon fine, il backup sarà inviato in pipe attraverso la rete. La scrittura del file su disco sarà più rapida se la rete è veloce. | |
| Linea 116: | Linea 180: |
| Se tutto è andato a buon fine il backup sarà inviato in pipe attraverso la rete. La scrittura del file su disco sarà più rapida se in uso una rete veloce. | = Programmare il backup con Cron = |
| Linea 118: | Linea 182: |
| = Programmare il backup con cron = L'esecuzione di queste operazioni può essere programmata e resa automatica con '''cron'''. Per maggiori informazioni consultare [[AmministrazioneSistema/Cron|questa guida]]. |
L'esecuzione di queste operazioni può essere programmata e resa automatica con '''cron'''. Per maggiori informazioni, consultare [[AmministrazioneSistema/Cron|questa guida]]. |
| Linea 125: | Linea 187: |
| * [[http://www.ubuntuforums.org/showthread.php?t=35087|Guida sul forum internazionale]] |
Guida verificata con Ubuntu: 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Con Ubuntu è possibile eseguire un backup dell'intero sistema con gli stessi strumenti utilizzati per archiviare o comprimere ogni altro file: tar.
Installazione
tar è già preinstallato nel sistema Ubuntu.
Se si è su sistema minimale nel caso non fosse presente, installare il pacchetto tar.
Procedimento backup
Per eseguire un backup dell'intero sistema, partendo dalla directory root /, è necessario utilizzare i privilegi di amministratore in un terminale.
Spostarsi nella directory o partizione di destinazione del backup, digitando in un terminale il comando:
cd `/directory_destinazione_backup`
Per effettuare il backup del sistema /, digitare il seguente comando:
sudo tar -cvpzf /backup.tgz --exclude=/proc --exclude=/lost_found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls /
Questo comando include le opzioni essenziali per preservare permessi, attributi estesi e ACLs, fondamentali per un ripristino funzionale.Per i sistemi che utilizzano SELinux (come Fedora, RHEL, CentOS e OpenSUSE), è fondamentale aggiungere anche l'opzione --selinux al comando di backup per preservare i contesti di sicurezza.
Di seguito è riportata in dettaglio la spiegazione della sintassi del comando:
Sintassi opzioni |
|
Opzione |
Risultato |
tar |
Programma di archiviazione utilizzato per eseguire il backup. |
-c |
Crea un nuovo archivio di backup. |
-v |
Modalità verbose: tar restituisce sullo schermo una descrizione delle operazioni in corso. |
-p |
Mantiene i permessi POSIX di tutti i file. |
-z |
Comprime il file di backup con gzip per ridurne le dimensioni. |
-f <nomefile> |
Specifica il percorso di salvataggio del backup (/backup.tgz è il file utilizzato in questo esempio). |
--exclude=/<dir> |
Esclude dal backup la directory specificata. |
--xattrs |
Preserva gli attributi estesi dei file (extended attributes). Essenziale per un ripristino completo. |
--acls |
Preserva le liste di controllo accessi (Access Control Lists - ACLs). Essenziale per un ripristino completo. |
--selinux |
Preserva i contesti di sicurezza SELinux. Fondamentale per i sistemi che utilizzano SELinux. |
/ |
Specifica / come directory di backup (root). |
Esclusione directory
Si consiglia di non includere le cartelle di sistema /mnt e /media, poiché la loro inclusione comporterebbe il backup di altre partizioni eventualmente montate. È altresì consigliabile escludere le directory /run, /tmp, /var/tmp, /var/run e /dev, in quanto contengono file temporanei, dati di runtime e file speciali di periferica che vengono ricreati dinamicamente all'avvio del sistema e non sono necessari per un ripristino efficace.
Non è necessario effettuare il backup di tutto il sistema, dato che alcune directory non sono indispensabili (compreso il file di backup stesso e quelle contenenti dati temporanei, di runtime o file speciali di periferica).
Aggiungere la data
Al nome del file di backup è possibile aggiungere la data di esecuzione. A tale scopo, è sufficiente inserire la seguente dicitura nel comando di backup:
`date +%d-%m-%Y`
Il comando aggiungerà al nome del file una data in formato «giorno-mese-anno», come nel seguente esempio:
sudo tar -cvpjf /backup-`date+%d-%m-%Y`.tar.bz2 --exclude=/proc --exclude=/lost_found --exclude=/backup-`date+%d-%m-%Y`.tar.bz2 --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls /
Ricordarsi di aggiungere --selinux anche qui se il sistema lo richiede.
Compressione della Directory
È possibile utilizzare diversi algoritmi di compressione per il file di backup.
Compressione con bzip2
È possibile anche utilizzare bzip2 per comprimere il file di backup. Questo porta una maggiore compressione, seppur a discapito di una minore velocità rispetto a gzip.
Per utilizzare bzip2, sostituire nel comando di creazione del backup l'opzione z con j e modificare l'estensione del file di backup, come nel seguente esempio:
sudo tar -cvpjf /backup.tar.bz2 --exclude=/proc --exclude=/lost_found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls /
Ricordarsi di aggiungere --selinux anche qui se il sistema lo richiede.
Compressione con Zstd (Raccomandato)
Zstd (Zstandard) è un algoritmo di compressione moderno che offre un eccellente bilanciamento tra velocità e rapporto di compressione, spesso superando gzip e bzip2. Supporta anche il multithreading, accelerando notevolmente le operazioni su CPU moderne.
Per utilizzare zstd con il multithreading, è necessario utilizzare l'opzione -I di tar e specificare il comando zstd con l'opzione -T$(nproc) che sfrutta tutti i core della CPU disponibili. L'estensione del file sarà solitamente .tar.zst.
sudo tar -cvpI 'zstd -T$(nproc)' -f /backup.tar.zst --exclude=/proc --exclude=/lost_found --exclude=/backup.tar.zst --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls /
Per una compressione zstd a singolo thread (o se zstd non supporta -T o non si vuole il multithreading), si può anche usare la scorciatoia --zstd direttamente con tar (se la versione di tar lo supporta) o -I 'zstd':
Con l'opzione nativa di tar (se disponibile):
sudo tar -cvp --zstd -f /backup.tar.zst --exclude=/proc --exclude=/lost_found --exclude=/backup.tar.zst --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls /
Oppure forzando zstd senza multithreading:
sudo tar -cvpI 'zstd' -f /backup.tar.zst --exclude=/proc --exclude=/lost_found --exclude=/backup.tar.zst --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/var/tmp --exclude=/var_run --exclude=/dev --xattrs --acls /
Ricordarsi di aggiungere --selinux anche qui se il sistema lo richiede.
Ripristino
Prestare molta attenzione alle istruzioni seguenti. Errori potrebbero sovrascrivere file importanti per il sistema. Il comando seguente sovrascriverà tutti i file del sistema con quelli presenti nell'archivio di backup.
Per ripristinare il backup, non è necessario accedere a una modalità speciale del sistema operativo; è possibile farlo con il sistema in esecuzione. Nel caso in cui l'accesso al sistema non sia possibile, è utilizzabile un DVD/USB live per ottenere gli stessi risultati.
È possibile rimuovere qualsiasi file dal sistema mentre questo è in esecuzione, con tutte le implicazioni al successivo riavvio.
Copiare il file di backup nella directory /.
Per eseguire il ripristino, assicurarsi di includere le stesse opzioni di compressione, --xattrs, --acls e --selinux (se usata) che sono state usate durante la creazione del backup. Digitare in un terminale il seguente comando:
Per backup gzip (.tgz):
sudo tar -xvpzf /backup.tgz -C / --xattrs --acls
Per backup bzip2 (.tar.bz2):
sudo tar -xvpjf backup.tar.bz2 -C / --xattrs --acls
Per backup zstd (.tar.zst) con compressione esterna (-I):
sudo tar -xvpI 'zstd -d -T$(nproc)' -f /backup.tar.zst -C / --xattrs --acls
Usare zstd -d per la decompressione, con -T$(nproc) se usato in compressione.
Per backup zstd (.tar.zst) con opzione nativa (--zstd):
sudo tar -xvp --zstd -f /backup.tar.zst -C / --xattrs --acls
Premere Invio per avviare il ripristino.
Al termine della procedura, assicurarsi di ricreare eventuali directory escluse durante il backup nel caso siano state compromesse (ad esempio /proc, /lost+found, /mnt, /sys, /run, /tmp, /var/tmp, /var_run, /dev, ecc.):
sudo mkdir /proc /lost_found /mnt /sys /run /tmp /var/tmp /var_run /dev
Al successivo riavvio, l'intero sistema sarà stato ripristinato.
Alcune opzioni per ripristino:
Sintassi opzioni |
|
Opzione |
Risultato |
x |
estrae i file dall'archivio. |
-C <directory> |
sposta in una specifica directory, in questo caso /, prima di estrarre i file. |
--xattrs |
Ripristina gli attributi estesi. |
--acls |
Ripristina le liste di controllo accessi. |
--selinux |
Ripristina i contesti di sicurezza SELinux. |
Se il backup è stato creato con --selinux, è indispensabile includerlo anche nel comando di ripristino, dopo le opzioni di compressione e f <file>.
Backup attraverso la rete
Qualora il disco fisso non disponga di spazio sufficiente o non fosse possibile montarne un altro per salvare il backup, è possibile usare netcat per spostare il file di backup.
Dalla parte del ricevente, impostare netcat in base al tipo di compressione utilizzata:
Per backup gzip (.tgz):
nc -l -p 1024 > backup.tgz
Per backup bzip2 (.tar.bz2):
nc -l -p 1024 > backup.tar.bz2
Per backup zstd (.tar.zst):
nc -l -p 1024 > backup.tar.zst
Quindi, inviare in pipe il comando per eseguire il backup con netcat, senza il flag -f, e ricordando di includere --xattrs, --acls e --selinux (se usato), come in questo esempio (per bzip2):
sudo tar -cvpj <tutte le altre opzioni> --xattrs --acls / | nc -q 0 <host_di_ricezione> 1024
O per zstd con multithreading:
sudo tar -cvpI 'zstd -T$(nproc)' <tutte le altre opzioni> --xattrs --acls / | nc -q 0 <host_di_ricezione> 1024
«1024» si riferisce al numero di una porta. Utilizzare un numero pari a 1024 o superiore. Ricordarsi di aggiungere --selinux anche qui se il sistema lo richiede.
Se tutto è andato a buon fine, il backup sarà inviato in pipe attraverso la rete. La scrittura del file su disco sarà più rapida se la rete è veloce.
Programmare il backup con Cron
L'esecuzione di queste operazioni può essere programmata e resa automatica con cron. Per maggiori informazioni, consultare questa guida.
