Verifica la correttezza dei file copiati


14

Dopo aver copiato dire più di 50 GB (30.000 file inclusi diversi formati) di file da un disco rigido interno a un disco esterno c'è un modo per scoprire se tutto è stato copiato correttamente? Inoltre, se mi interrompo cancellando l'operazione e in seguito dico unisci quando continui l'operazione, la correttezza subirà un colpo?

Potrei usare applicazioni come, back-in-timema sono molto esigente nella copia dei file e per la prossima volta intendo usare l' copyoperazione e dire mergeinvece di replace. È consigliabile quando si copia un numero elevato di file?


2
potresti trovare una risposta qui .
Takkat,

Risposte:


16

Sto usando hashdeep per verificare backup / ripristini e occasionalmente per verificare la corruzione del file system in un RAID.

La velocità dipende dalle funzioni di hash utilizzate (alcune richiedono più CPU rispetto ad altre) e dalla velocità di lettura dei dischi. Sul mio sistema hashdeepposso elaborare o verificare circa 1 TB / ora con velocità di lettura md5 e 300 MB / s.


Esempio sul calcolo dei checksum e sulla loro memorizzazione in un file:

cd my-data
hashdeep -rlc md5 . > ~/checksums.txt

parametri:

  • r - ricorsivo
  • l - usa percorsi relativi
  • c - specifica la funzione hash
  • . - ricorsivo a partire dalla directory corrente
  • > - reindirizza l'output sul file specificato

Vedi la pagina man .


Esempio di verifica di checksum e stampa di un elenco di differenze:

$ cd /mnt/my-backup
$ hashdeep -ravvl -k ~/checksums.txt .
hashdeep: Audit passed
          Files matched: 40914
Files partially matched: 0
            Files moved: 0
        New files found: 0
  Known files not found: 0

parametri:

  • a - audit (confrontare con l'elenco di checksum noti)
  • v- verbose (per ottenere un elenco di discrepanze, più vs significa più prolisso)
  • k - file di hash noti

Si noti che a partire da marzo 2016 hashdeepsembra essere abbandonato .


14

Sembra il compito perfetto per rsync . Rsync sta confrontando e copiando le differenze.

L' rsyncutilità mi è venuta in mente per la prima volta quando ho visto la tua domanda. Fare qualcosa come sotto potrebbe mostrare rapidamente quali file sono nella directory ama non in b:

$ rsync -rcnv a/* b/

-r will recurse into the directories
-c will compare based on file checksum
-n will run it as a "dry run" and make no changes, but just print out the files 
   that would be updated
-v will print the output to stdout verbosely

Questa è una buona opzione perché puoi confrontare anche il contenuto dei file per assicurarti che corrispondano. rsyncL'algoritmo delta è ottimizzato per questo tipo di caso d'uso. Quindi, se vuoi far bcorrispondere il contenuto di a, puoi semplicemente rimuovere l' -nopzione per eseguire la sincronizzazione effettiva.

Alcune domande correlate:


1
rsync è sicuramente lo strumento per questo lavoro, ma non confronta e copia le differenze, di per sé. Confronta i file utilizzando dimensioni e hash.
Forza Justin,

@JustinForce Usando la dimensione? Certo, dimensioni diverse assicurano che il file non sia esattamente lo stesso, ma rsync è molto versatile, può facoltativamente fidarsi dei metadati (come il tempo) per evitare di rileggere tutti i file. Quando si copia attraverso la rete, calcola un hash rolling per rilevare con precisione le parti comuni per evitare di trasferirle, ma sull'unità locale per impostazione predefinita gli hash non svolgono questo ruolo (se usato affatto). Puoi anche chiedergli di fidarti che una destinazione più breve ha già contenuti corretti e ha solo bisogno di essere aggiunta, anche se rimaniamo in tema.
Stéphane Gourichon,



0

Su "se tutto è stato copiato correttamente", utilizzo un cp (o mv) modificato che include il checksum (facoltativamente memorizzato in xattr, quindi deve essere calcolato solo una volta per l'origine) http://sourceforge.net/projects / crcsum /


1
Sebbene la tua risposta sia corretta al 100%, è anche quasi impossibile implementarla per un utente principiante. Pertanto, modifica la tua risposta e includi i passaggi su come scaricare, compilare, installare e disinstallare crccpnella tua risposta! ;-) Puoi sempre lasciare il link in fondo alla tua risposta come fonte per il tuo materiale ...
Fabby,
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.