Backup incrementali automatizzati su un'unità esterna


8

sfondo

Un client necessita di una soluzione di backup automatizzata su un'unità esterna (da prelevare settimanalmente fuori sede). Solitamente suggerirei rsnapshot (o forse implementare uno rsyncscript personalizzato ), ma questa domanda è leggermente più complessa.

Il sistema basato su Arch Linux è senza testa e pertanto la soluzione deve essere completamente automatizzata, senza richiedere l'intervento dell'utente.

Uno scenario ideale sarebbe il seguente:

  1. L'utente collega un disco rigido USB
  2. Viene eseguito un backup incrementale completo
  3. Il disco rigido è smontato
  4. All'utente viene comunicato che è possibile scollegare il disco rigido

Proposta

La mia soluzione proposta consiste in:

  1. Una udevregola monta automaticamente l'unità
  2. Il backup viene avviato con:

    1. La stessa udevregola attiva anche uno rsnapshotscript
    2. Un evento inotify create rileva il nuovo punto di montaggio e si innescarsnapshot
  3. Dopo le rsnapshotuscite, umountviene eseguito sull'unità

  4. I modi possibili per notificare il disco rigido possono essere rimossi:

    1. L'unità CD si apre
    2. Un suono viene riprodotto attraverso l'altoparlante del PC

Se si è verificato un errore in qualsiasi momento, inviare un'e-mail all'utente e smontare l'unità.

Domande

  1. La mia proposta sembra fattibile ma ci sono evidenti difetti? Come posso renderlo robusto?
  2. Per motivi di sicurezza, come posso assicurarmi che il disco rigido collegato sia l'utente? sshchiavi? Etichetta dell'unità?
  3. Esistono soluzioni (Linux) esistenti che comprendono questo?

Risposte:


7

La tua soluzione sembra relativamente adatta, tuttavia:

  • Assicurarsi che lo rsnapshotscript non presuma di conoscere il dispositivo a blocchi. Indirizza idealmente il filesystem tramite il suo UUID o etichetta per evitare la carneficina.
  • Aggiungi timeout. In questo modo, se qualcosa va storto di cui non sappiamo, o qualcosa fa sì che la sceneggiatura non finisca mai, può essere trattata come un errore invece di continuare indefinitamente.
  • Dichiarate che alla fine "[i] f si è verificato un errore in qualsiasi momento, inviate un'e-mail all'utente e smontate l'unità" - cosa succede se non è possibile smontare l'unità o se lo smontaggio è dove si guasta? Cosa succede se l'e-mail fallisce? Assicurati di creare failaf nel tuo sistema.
  • Per la sicurezza di base, l'UUID dovrebbe andare bene (a meno che un utente malintenzionato non sia a conoscenza del tuo UUID), tuttavia, se la sicurezza è più preoccupante, considera la possibilità di scrivere alcuni dati nell'area di codice dell'MBR (byte 0-440) e fare in modo che lo script lo controlli prima di iniziare il backup. Dovresti essere avvertito che questa è più sicurezza attraverso l'oscurità di ogni altra cosa, tuttavia in questa situazione non vedo alcun metodo facilmente disponibile che sia superiore. Se si desidera andare fino in fondo, tuttavia, è possibile determinare se l'unità è autorizzata analizzando un certificato crittografato memorizzato sul disco. quandoudevrileva l'unità, lo script decodifica il certificato usando la sua chiave. Il certificato contiene parametri relativi all'unità, come il numero di serie dell'unità, il numero del modello, la capacità, ecc., Quindi confronta i parametri estratti dal certificato crittografato con i parametri rilevati durante l'analisi dell'azionamento. Se i parametri corrispondono, l'unità viene determinata come autentica, altrimenti viene rifiutata e lo script termina.

Ci sono soluzioni Linux esistenti che rientrano in questo ambito, tuttavia, per le tue esigenze specifiche, penso che faresti meglio a creare una soluzione su misura invece di armeggiare con la fonte di altri programmi per farli fare quello che vuoi.

Per scrivere dati casuali nell'area del codice dell'MBR, che è quindi possibile verificare, fare qualcosa di simile dd if=/dev/urandom of=/dev/sdX bs=440 count=1.


Grazie Chris. Non avrei pensato di usare l'UUID, il che semplifica notevolmente le cose. Per interesse, potresti condividere collegamenti a soluzioni esistenti? Potrebbero darmi qualche idea in più o essere utile ad altri lettori.
dal

Pensavo di ricordarmene alcuni, ma non riesco a trovarli ora. Sembra piuttosto interessante, però, forse ne svilupperò uno da solo. Ti farò sapere.
Chris Down,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.