Interesuje mnie przechowywanie wskaźnika integralności pliku / katalogu między dwiema zarchiwizowanymi kopiami katalogów. To około 1 TB danych przechowywanych rekurencyjnie na dyskach twardych. Czy istnieje sposób wykorzystania OpenSSL do wygenerowania pojedynczego skrótu dla wszystkich plików, które można wykorzystać do porównania dwóch kopii danych lub w późniejszym czasie w celu sprawdzenia, czy dane się nie zmieniły?
0
md5 -q <(find . -type f 2>/dev/null | xargs md5 -q | sort)
działa dobrze w Bash i nie wymaga pliku tymczasowego. Zmień, jeśli twój system używamd5sum
zamiastmd5
. Należy również pamiętać, żesort
może zachowywać się inaczej na różnych platformach, co wpłynie na ostateczną sumę kontrolną, jeśli kolejność jest inna. Dodaj flagi podobne! -name ".DS_Store"
do komponentu find, aby zignorować niektóre pliki, takie jak pliki .DS_Store w Mac OS X, które mogą zrzucić sumę kontrolną, ponieważ są generowane przez system operacyjny.Nie można wykonać skumulowanego skrótu dla wszystkich, aby utworzyć pojedynczy skrót, ale można go najpierw skompresować, a następnie obliczyć skrót:
rekurencyjnie mieszać każdy plik:
źródło
Wykonanie sumy md5 na tarie nigdy by nie działało, chyba że wszystkie metadane (data utworzenia itp.) Byłyby identyczne, ponieważ tar przechowuje je jako część swojego archiwum.
Prawdopodobnie zrobiłbym sumę md5 zawartości wszystkich plików:
źródło
Prawdopodobnie powinieneś być zainteresowany wydaniem skrótu w formacie coreutils (identycznym jak md5sum -b)
Tak więc komenda md5sum może być:
lub z wyjściem do pliku
źródło