Consigli per effettuare un backup nella maniera migliore

6 risposte [Ultimo contenuto]
Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 78

Salve a tutti, mi sto approcciando al problema in oggetto e online ho trovato troppe info, cerco quindi i consigli di gente più esperta per collegare il tutto nella speranza che possa anche venir fuori qualcosa come una guida.
Faccio una premessa su ciò che cerco, prima di tutto vorrei un metodo efficiente per il backup della configurazione di sistema (impostazioni di sistema) e dei dati dei programmi, in secondo luogo il backup dei dati utente, eventualmente dei programmi installati ma su questo aspetto consigli, e infine vorrei avere un ISO del sistema pulito, come post-installazione con la sola aggiunta di programmi e configurazioni che so che mi serviranno per non doverle rifare.

Prima di tutto linko la fonte principale del manuale di Debian: QUI, all'inizio elenca le cartelle principali di cui fare il backup

  • I file dati direttamente creati dall'utente: in "~/"
  • I file dati creati da applicazioni usate dall'utente: dati in "/var/" (tranne "/var/cache/", "/var/run/" e "/var/tmp/")
  • File di configurazione del sistema: dati in "/etc/"
  • Software locali: dati in "/usr/local/" o "/opt/"

Secondo voi sono sufficienti per avere un backup che rispetta la mie esigenze? Nel senso che posso stare tranquillo che qualunque impostazione di sistema è salvata in "/etc/"? Mentre i dati di qualunque software sono sempre installati in "/var/" o alcuni software installati manualmente possono avere anche i dati in "/usr/local/" o "/opt/"?
Riguardo quest'ultima cosa vorrei un consiglio, dov'è meglio installare i programmi e qual è la differenza? Ho installato Eclipse per il quale era necessario solo decomprimerlo in "/opt/", invece Matlab che ho installato da script aveva come cartella di default "/usr/local/" e quindi ho lasciato quella, queste domande possono essere banali ma mi permettono di entrare al meglio nell'ottica di questo sistema operativo.

Poi, subito giù nel paragrafo 10.2.1 elenca alcuni programmi per questo scopo ma non saprei da dove iniziare, online ho trovato pareri positivi su rsync (ad esempio su questa guida: QUI) e rsnapshot (anche usati insieme), però per esempio quest'ultimo è incluso nella tabella del manuale, mentre rsync non lo nomina nemmeno.

Avrei altre domande citando anche altre fonti che ho trovato online sul resto della problematica, però mi fermo qui ed aspetto risposta almeno su queste per non rendere la discussione troppo dispersiva.

Grazie in anticipo.

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Non hai detto perché vuoi un backup. Le motivazioni di solito ricadono in due classi: per proteggerti da un disastro (l'HD che si rompe), o per poter tornare indietro se fai qualche cosa di stupido.

Il primo caso è più facile, perché basta tenere una copia esatta dei dati in un luogo sicuro e aggiornarla a intervalli regolari. Inoltre il ripristino è "a corpo", nel senso che dopo il disastro prendi l'intera mole di dati e la copi sul nuovo HD. Per questo compito, anche uno strumento semplice come tar può andar bene.

Il secondo caso, invece, è rognoso, perché vorrai poter ripristinare non l'ultima versione salvata, ma n versioni prima. Ad esempio, se hai optato per fare un salvataggio ogni notte e ti accorgi oggi che lunedì scorso avevi cancellato un dato per errore, ti interessa la versione prima di quel fatidico lunedì, e nessuna di quelle dei giorni seguenti. Inoltre in questo scenario difficilmente vorrai ripristinare l'intera mole di dati, ma solo uno specifico file.

Come puoi immaginare, ognuno chiede cose diverse ed è per questo che non esiste uno standard unico e consolidato per i backup.

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 78

Salve, grazie per la risposta, effettivamente non ho pensato che la cosa potesse essere rilevante, riguardo il secondo caso da te citato ho una copia in virtuale del mio sistema che è stata configurata perfettamente per questo scopo, è ovvio che gli incidenti possono sempre succedere, ma per quello che faccio io, ristabilendo una copia post-installazione del sistema con solo alcune aggiunte principali dovrei essere subito nuovamente operativo.
Questo per dire che nel mio caso una soluzione che si adatta alla prima situazione (ad es. HD che si rompe) va bene anche per la seconda.
In più vorrei avere anche un backup dei dati che ritengo più importanti (es. configurazione di sistema come dati delle impostazioni di sistema o dati di alcuni programmi), perché so che potrebbero sempre servirmi e vorrei utilizzare la copia post-installazione del sistema (ad es. un ISO) solo come ultima spiaggia.
Riguardo a questi ultimi dati vorrei qualcosa di più efficiente dell'inserire un hard disk esterno ogni fine settimana, cancellare i file precedenti e sostituirli con quelli nuovi, o dovermi ricordare quali possono essere diversi e quali no, tra l'altro per dati di questo tipo so che non mi servirebbero più copie in date diverse tanto per intenderci.

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Direi che la soluzione più semplice è inserire un HD esterno ogni fine settimana e lanciare un comando che copia solo i dati cambiati dall'ultima volta. Il comando che userei io è rsync con le opzioni -u (copia solo i dati che sono cambiati), -a (preserva permessi, date, ecc.), -C (escludi certi file tipicamente non importanti), --delete (cancella sul backup file che sono stati cancellati nell'originale) e magari -b (ogni volta che un file sul backup dev'essere cancellato o sostituito da un nuova versione, la vecchia versione è salvata aggiungendo ~ alla fine del nome). Per fare esperimenti potresti trovare utili anche le opzioni -v (verboso) e -n (simula le azioni ma non fare nulla).

Le directory oggetto del backup sono quelle che hai correttamente elencato nel tuo primo messaggio.

La differenza tra /usr/local e /opt sta solo in come i software sono organizzati al loro interno. Nel primo caso, osservano la gerarchia tipica di UNIX, con gli eseguibili in /usr/local/bin, le librerie in /usr/local/lib, le pagine di manuali in /usr/local/share/man, ecc. Invece la struttura sotto /opt è simile a quella che usa Windows, in cui ogni software crea la sua directory e installa lì tutti i suoi file.

Il "bello" di /usr/local è che puoi applicare lo stesso ragionamento che hai fatto per /usr e decidere da fare il backup solo di /usr/local/etc, /usr/local/var, mentre il resto dovrebbe essere ripristinabile semplicemente riscaricando e reinstallando il software. Con /opt invece programmi e dati sono mischiati e quindi dovrai backuppare tutto insieme.

Infine, nota che rsync può funzioare in locale, ma anche tra macchine diverse. Invece di collegare fisicamente l'HD al momento di fare il backup, molti usano un NAS connesso alla rete locale. Se il NAS è sempre raggiungibile, non è nemmeno necessario ricordarsi di lanciare il backup: basta creare una regola in /etc/cron.weekly o addirittura .daily per avere un backup sempre aggiornato senza intervento umano.

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 78

Perfetto sei stato chiarissimo, quindi riguardo all'installazione dei programmi è preferibile usare /usr/local, quando invece ci sono programmi che "si installano" semplicemente decomprimendo uno zip è buona norma metterlo in /opt giusto?

Per quanto riguarda rsync ho visto il manuale e potrebbe effettivamente fare al caso mio, però su questa guida QUI ho visto il suo utilizzo insieme ad rsnapshot, ma da quello che ho capito rsnapshot serve per avere più copie di uno stesso backup in maniera efficiente e salvando solo le modifiche e basta, quindi è superfluo per quello che serve a me, confermi?

Per quanto riguarda l'ISO cosa mi consigli? Stavo pensando a remastersys ma online le guide più "ufficiali", tipo una sulla wiki di Ubuntu e altre specifiche per Debian, risultano obsolete, altri software che ho trovato sono Clonezilla e "Redo Backup and Recovery".
Poi invece ho trovato anche questa guida sulla wiki di Debian QUI che mi è sembrata semplice e veloce per avere qualcosa di base, però nei due esempi usa delle semplici cartelle e non delle intere partizioni o degli interi file system dal quale poi poter reinstallare il sistema.

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Diciamo che se rsync è un musicista, rsnapshot è il direttore d'orchestra: non fa niente, ma coordina un plotone di rsync per applicare uno schema di backup anche molto complesso su più macchine.

Per la ISO non ho molta esperienza. L'unico consiglio è di considerare non solo la fase di backup, ma anche quella di restore. Troppo spesso si applica uno schema efficacissimo sulla carta, ma poi, quando il disastro avviene, ci si accorge che mancano gli strumenti per il ripristino. Clonezilla, se ricordo bene, permette di creare delle ISO avviabili: essenziale se si ha un sistema danneggiato che non si riavvia più. Non conosco gli altri...

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 78

Ah perfetto, non avevo percepito che rsnapshot di base non facesse altro che utilizzare rsync.

Ho dato uno sguardo veloce al manuale di genisoimage e xorriso che venivano usati nella wiki ma non ho trovato risposta a quello che mi serviva sapere, a questo punto proverò gli altri che ho citato, nel mentre magari qualcuno che li ha provati potrà farmi sapere come si è trovato.