PDA

Visualizza la versione completa : [TAR] Chiartimenti su modalità di verifica di un archivio


ilmo lesto
06-06-2009, 14:13
Salve a tutti,
sto cercando di scrivere un piccolo script per il backup utilizzando il comando tar.

Mi piacerebbe poter verifacare i dati che vado ad archiviare..
dopo aver ricercato in lungo e in largo non mi è ancora chiaro quale sia il modo migliore per sapere se i dati sono stati archiviati correttamente.


Le opzioni che ho individuato sono sostanzialmente due:

- utilizzare il comando di verifica che mi fornisce tar, vale a dire qualcosa di questo tipo tar -cvpWf bup.tar target
dove l'opzione W è proprio quella che esegue la verifica. (--verify)

- ho trovato in rete anche diverse implementazioni che utilizzano la somma di controllo:
l'idea mi ha molto incuriosito e appassionato, ma non capisco se sarei in grado di applicarla in modo corretto al mio script.
Ecco alcuni link di riferimento per quanto riguarda la somma di controllo (ma che richiedono script aggiuntivi per verificare gli hash generati)
Link: http://www.g-loaded.eu/2007/12/01/veritar-verify-checksums-of-files-within-a-tar-archive/
Link: http://www.guyrutenberg.com/2008/10/24/tarsum-calculate-checksum-for-files-inside-tar-archive/

Ciò che per me è importante è che, una volta avviato il comando tar, vorrei essere sicuro che i dati archiviati non fossero in alcun modo corrotti.. Cosa mi conviene fare?
Mi basta utilizzare l'opzione di verifica fornita dallo stesso tar, oppure cos'altro?

EDIT: non si tratta di archivi su nastro, ma di semplici archivi su hard disk.

Grazie a tutti!

sacarde
06-06-2009, 17:32
in rete ci sono diverse soluzioni...

dalle semplici: http://www.cyberciti.biz/faq/unix-verify-tape-backup/

alle complesse: http://onlyubuntu.blogspot.com/2007/03/backup-and-restore-ubuntu-system-using.html

ilmo lesto
11-06-2009, 16:12
A questo punto cerco di semplificare la domanda: premetto che il manuale di tar non mi ha aiutato molto in merito.. (probabilmente anche per la mia scarsa padronanza dell'Inglese)..

Che cosa fa esattamente l'opzione di verifica presente nel comando TAR?

Quando lancio il comando in abbinata a --create, posso constatare che, oltre all'output dei file che va ad archiviare, mi compaiono messaggi riguardo alla verifica dei singoli file appena archiviati.

Le domane quindi che mi pongo sono le seguenti

- l'opzione --verify esegue una verifica sui singoli file che sono stati appena archiviati? (qui mi risponderei anche da solo con un bella risposta affermativa)
- Ma che cosa viene verificato esattamente? l'integrità fisica dei file archiviati?
- come può tornarmi utile questa verifica?
Mi spiego meglio: nel caso la verifica non vada a buon fine cosa accade? Il comando tar esce senza eseguire l'archiviazione oppure esegue ugualmente l'archiviazione, ma troveremo qualche strano messaggio sullo stderr?

Grazie.

sacarde
11-06-2009, 17:49
http://www.gnu.org/software/tar/manual/html_section/verify.html

ilmo lesto
12-06-2009, 00:10
Come ho cercato di spiegare poco sopra, quella pagina ormai la conosco a memoria, ma non risponde alle domande che sto ponendo, o per lo meno non riesco a trovarci un nesso..
:(

sacarde
12-06-2009, 09:08
io lo capisco cosi:

Each volume is checked after it is written, and any discrepancies are recorded on the standard error output.

dopo la copia/scrittura.... viene confrontato il sorgente e il copiato...
e le eventuali differenze mandate sullo stderr stdout

ilmo lesto
12-06-2009, 16:10
Questa frase che tu mi citi risponde bene alla prima domanda, ma risponde parzialmente alla mia seconda e terza domanda.

Nella seconda domanda infatti mi piacerebbe capire più approfonditamente quale tipo di verifica viene effettuata:
vorrei sapere se l'opzione verify compara i file di origine con quelli archiviati per stabilire se manca qualche file..
Questa ipotesi l'ho scartata visto che in teoria dovrebbe pensarci il comando --diff
Magari esegue una specie di somma di controllo sui singoli file.. ma questo non viene esplicitamente detto, o almeno io non l'ho trovato scritto da nessuna parte..

Per l'ultima domanda posta volevo avere da qualcuno una conferma del fatto che se la verifica non va a buon fine TAR si limita a scrivere dei messaggi di errore sullo stderr; se così fosse questi messaggi si possono in qualche modo isolare da altri messaggi che potrebbero comparire sullo stderr ma che non sono stati prodotti dall'opzione --verify? (spero di essere stato chiaro).

Loading