Domanda:
Controllo dell'integrità dei file
Olli
2014-02-05 06:44:11 UTC
view on stackexchange narkive permalink

Ho una grande quantità di file che non dovrebbero mai cambiare, comprese fotografie RAW e file video. Sono preoccupato per il bit rot silenzioso.

Dispongo di backup per ripristinare file persi / danneggiati, ma confrontare i file correnti con i backup non è pratico (ad esempio, i file video sono su nastri digitali). Inoltre, il mio software di backup non fornisce funzionalità per questo.

Esiste un software che analizza l'elenco di cartelle, memorizza checksum affidabili e può convalidare quella selezione per file aggiunti / rimossi / modificati (danneggiati)?

Ci sono circa 3 TB e 21 milioni di file (una gran parte di questi sono file davvero piccoli, ovviamente), quindi il consumo di memoria è importante. Dovrebbe funzionare su Linux, e preferibilmente anche su OS X.

Nota : su Linux, sto già eseguendo ZFS, che ha un solido checksum e scrub per rilevare i bitflip. Tuttavia, non è possibile o pratico utilizzare questo o btrfs su OS X / dischi ottici / dischi USB che dovrebbero essere portatili (cioè FAT). Preferisco di gran lunga una soluzione indipendente dal filesystem.

Se non c'è alcun software che lo faccia automaticamente, dato che sei su OSX e Linux, potresti facilmente impostare uno script bash e un cron job per farlo con `md5sum` per controllare tutti i tuoi file, crea un report , eccetera.
Ti suggerisco di tenere d'occhio il file system di prossima generazione ** btrfs **: https://plus.google.com/+AaronSeigo/posts/ZAmXwESunL2
Su un allineamento diverso dalla domanda * come affermato *: potresti essere interessato a testare [git-annex] (https://git-annex.branchable.com/ "git-annex"). Il suo caso d'uso "archivista" copre sia il rilevamento di corruzioni che la riparazione da altre copie. Sì, puoi chiedergli di copiare in modo semi-automatico i dati tra le aree di archiviazione per garantire che siano disponibili copie sufficienti. L'impostazione predefinita è un po '"invasiva" poiché tutti i file vengono sostituiti con collegamenti simbolici a directory di sola lettura dedicate per prevenire scritture indesiderate (può essere disabilitato). Principalmente uno strumento Linux, sembra che sia disponibile come app bundle e homebrew.
Tre risposte:
#1
+19
Olli
2014-02-07 01:55:20 UTC
view on stackexchange narkive permalink

Ho iniziato a utilizzare AIDE:

AIDE (Advanced Intrusion Detection Environment) è un controllo di integrità di file e directory.

Tiene traccia dei file modificati, aggiunti e modificati e degli attributi dei file. Supporta diversi algoritmi di checksum, inclusi sha256 / sha512.

Su Ubuntu, il pacchetto aide è disponibile dal repository di base ( apt-get install aide ). Su OS X, la compilazione non è riuscita con errori misteriosi, ma l'installazione con macports è riuscita:

  sudo port install aide  

Configurazione di esempio il file è disponibile in /opt/local/etc/aide.conf . L'esecuzione è semplice:

  aide --init # Inizializza il database - calcola checksumsaide --check # Controlla i file rispetto al database --update # Controlla i file rispetto al database e aggiorna il database  

Tutti i dati sono archiviati in un file di testo in chiaro (che è ovviamente vulnerabile alla corruzione, ma conservarne una copia è facile), quindi cambiare lo strumento con qualcos'altro dovrebbe essere semplice.


Cose positive:

  • Veloce
  • Supporta più algoritmi di checksum efficaci. L'uso di md5 è altamente sconsigliato, in quanto è fondamentalmente rotto.
  • Facile da eseguire su cron
  • Sulla base di brevi test, nessun problema finora. Rileva correttamente tutte le modifiche (sul contenuto e sugli attributi dei file configurati), nonché i file aggiunti e rimossi.
  • Supporta esclusioni di file complicate: ad esempio, non ha senso eseguire il checksum dei file temporanei o qualsiasi file che dovrebbe modifica.
  • Calcola più checksum (configurabili). Ciò fornisce garanzie relativamente buone per il futuro: anche se un algoritmo di hashing è compromesso, il database di integrità è ancora utile, anche contro modifiche intenzionali (rispetto a bit rot).
  • I checksum sono archiviati in testo normale e le intestazioni includono le definizioni dei campi. Questo è utile se il file di configurazione viene perso o se viene analizzato con un altro programma.
  • File di configurazione e database checksum facili da memorizzare su ogni disco / CD / cartella (struttura). Con ciò, tutte le opzioni di configurazione vengono memorizzate automaticamente ed è facile eseguire nuovamente il controllo dell'integrità.

Punti negativi:

  • La configurazione richiede la modifica del file di configurazione sull'editor di testo, invece di avere una bella interfaccia utente. Allo stesso modo, il controllo dell'output è diretto al terminale.
  • L'ultima versione è del 2010, ma d'altra parte è completa di funzionalità, quindi non sono necessari aggiornamenti costanti.
  • L'integrità del database di checksum non viene convalidata automaticamente. Fortunatamente, farlo separatamente è facile ( sha1sum checksums.db > checksums.db.sha1sum )
Funziona bene su Windows?
`aide --init` (o qualsiasi altra cosa che ho provato a fare con` aide`) non funziona su Ubuntu - i manutentori del pacchetto lo hanno rotto. Devi invece usare "aideinit".
MD5 ha problemi di sicurezza, ma perché è importante per lo scopo dell'OP? Non sta cercando di eseguire l'hashing sicuro dei dati sensibili. Infatti MD5 è molto comunemente usato come file checksum - [esempio] (https://help.ubuntu.com/community/UbuntuHashes). A parte questo, +1 per una buona risposta.
Un altro punto: la configurazione del file di testo e l'output della CLI sarebbero positivi per molte persone piuttosto che negativi.
#2
+11
palacsint
2014-02-07 03:59:10 UTC
view on stackexchange narkive permalink

Uso cfv da anni.

  • Supporta operazioni ricorsive (puoi creare un file di checksum per directory o un file di checksum per una sottostruttura completa).
  • Potrebbe ignorare le maiuscole / minuscole e correggere le opzioni del separatore di percorso per uso multipiattaforma che è abbastanza utile se vuoi controllare / creare checksum su diversi file system e / o sistemi operativi.
  • È un'applicazione console ma ha una bella barra di avanzamento (a differenza del semplice md5sum ).
  • Può rilevare file aggiunti (opzione -u ).

Non so se funziona o Mac OS X oppure no, ma è in MacPorts.

Hmm. `sha1sum *> files.sha1sum; cfv` funziona bene. Secondo man, `-r -m -u` è un insieme appropriato di opzioni per controllare i file senza hash. Sembra funzionare bene, MA se il file con checksum viene modificato, viene comunque visualizzato OK. Se il file con checksum viene rimosso, viene stampato correttamente "1 non trovato, 1 non verificato". Stavo per aprire il bug ticket, ma non mi sono preoccupato di registrarmi a sourceforge.
@Olli: Non penso che tu abbia bisogno del flag `-m`. Secondo il manuale, `-m` * non confronta i checksum *. Prova `cfv -T -uu -f test1.sha1` (se hai un file` sha1` per un albero di directory completo).
per qualche motivo, controlla tutto due volte (e sì, so che i commenti non sono un forum di supporto).
#3
+7
Journeyman Geek
2014-02-07 05:41:20 UTC
view on stackexchange narkive permalink

Nessuna scuola è come la vecchia scuola. Certo, ho un po 'di pregiudizio qui dal mio background forense, ma potresti eseguire somme md5 e confrontarle.

Sebbene questo thread SO abbia alcuni metodi interessanti, sono piuttosto appassionato di hashdeep. L'utilizzo della memoria è basso, anche se mastica un sacco di cicli del processore, ma attraverso la magia della modalità di controllo, fa tutto ciò che gli chiedi automaticamente tramite la riga di comando, prendendo un file di testo e confrontandolo con ciò che elenca .

Sebbene il sito abbia i binari di Windows, alcune distribuzioni e gestori di pacchetti per Mac hanno i port: puoi trovare l'elenco completo qui

hashdeep - comprese le stime di tempo - sembrava carino, ma non mi piace molto l'interfaccia: a) sul terminale Mac, la barra di avanzamento / stime è seriamente danneggiata, b) per le cartelle, devi dare `--recursive`. Altrimenti in `--audit` attraversa ricorsivamente e stampa` File noto non usato` per ogni file, c) se il file viene copiato, secondo hashdeep viene spostato (e quello vecchio viene segnalato come "Nessuna corrispondenza"), invece di "aggiunto", d) verifica e aggiornamento richiede due passaggi.
"Anche se questo thread SO ha alcuni metodi interessanti […]": Doveva esserci un collegamento?
Penso che intendesse questo thread _SR_.
Ho appena provato * hashdeep * e mi aspettavo che riportasse i file che ho aggiunto o rimosso dalla creazione della tabella hash. Non sembra avere opzioni per segnalarli affatto. Strano.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...