Pytanie:
Narzędzie do sprawdzania integralności plików
Olli
2014-02-05 06:44:11 UTC
view on stackexchange narkive permalink

Mam dużą liczbę plików, które nigdy nie powinny się zmieniać, w tym zdjęcia RAW i pliki wideo. Martwię się cichym zgnilizną.

Mam kopie zapasowe, aby przywrócić utracone / uszkodzone pliki, ale porównywanie bieżących plików z kopiami zapasowymi nie jest praktyczne (na przykład pliki wideo znajdują się na taśmach cyfrowych). Ponadto moje oprogramowanie do tworzenia kopii zapasowych nie zapewnia takiej funkcjonalności.

Czy istnieje oprogramowanie, które skanuje listę folderów, przechowuje wiarygodne sumy kontrolne i może sprawdzić ten wybór pod kątem dodanych / usuniętych / zmodyfikowanych (uszkodzonych) plików?

Jest około 3 TB i 21 milionów plików (duża część to oczywiście małe pliki), więc zużycie pamięci jest ważne. Powinien działać na Linuksie, a najlepiej również na OS X.

Uwaga : na Linuksie już używam ZFS, który ma solidne sumy kontrolne i scrub do wykrywania bitflipów. Jednak nie jest możliwe ani praktyczne użycie tego lub btrfs na OS X / dyskach optycznych / dyskach USB, które powinny być przenośne (tj. FAT). Bardzo wolę rozwiązanie niezależne od systemu plików.

Jeśli nie ma żadnego oprogramowania, które robi to automatycznie, ponieważ używasz OSX i Linuksa, możesz łatwo skonfigurować skrypt bash i zadanie crona, aby to zrobić za pomocą `md5sum`, aby sprawdzić wszystkie swoje pliki, zbuduj raport itp.
Sugeruję, abyś miał oko na system plików nowej generacji ** btrfs **: https://plus.google.com/+AaronSeigo/posts/ZAmXwESunL2
W przypadku innego dopasowania niż pytanie * jak podano *: możesz być zainteresowany testowaniem [git-Annex] (https://git-annex.branchable.com/ "git-Annex"). Jego przypadek użycia „archiwisty” obejmuje zarówno wykrywanie uszkodzeń, jak i naprawę z innych kopii. Tak, możesz poprosić go o półautomatyczne kopiowanie danych między obszarami przechowywania, aby zapewnić wystarczającą liczbę kopii. Domyślna konfiguracja jest trochę „inwazyjna”, ponieważ wszystkie pliki są zastępowane dowiązaniami symbolicznymi do dedykowanych katalogów tylko do odczytu, aby zapobiec niezamierzonym zapisom (można je wyłączyć). Przede wszystkim narzędzie Linux, wygląda na to, że jest dostępne jako pakiet aplikacji i homebrew.
Trzy odpowiedzi:
#1
+19
Olli
2014-02-07 01:55:20 UTC
view on stackexchange narkive permalink

Zacząłem używać AIDE:

AIDE (Advanced Intrusion Detection Environment) to narzędzie do sprawdzania integralności plików i katalogów.

Śledzi zmienione, dodane i zmodyfikowane pliki oraz atrybuty plików. Obsługuje różne algorytmy sum kontrolnych, w tym sha256 / sha512.

W Ubuntu pakiet aide jest dostępny z repozytorium podstawowego ( apt-get install aide ). W systemie OS X kompilacja nie powiodła się z powodu tajemniczych błędów, ale instalacja z macports powiodła się:

  sudo port install aide  

Przykładowa konfiguracja plik jest dostępny pod adresem /opt/local/etc/aide.conf . Uruchamianie jest proste:

  aide --init # Inicjuje bazę danych - oblicza sumę kontrolną --check # Sprawdza pliki względem bazy danych aide --update # Sprawdza pliki w bazie danych i aktualizuje bazę danych  

Wszystkie dane są przechowywane w postaci zwykłego pliku tekstowego (który jest oczywiście podatny na uszkodzenie, ale przechowywanie kopii jest łatwe), więc zmiana narzędzia na coś innego powinna być prosta.


Pozytywne rzeczy:

  • Szybki
  • Obsługuje wiele algorytmów silnych sum kontrolnych. Używanie md5 jest wysoce odradzane, ponieważ jest w zasadzie zepsute.
  • Łatwy do uruchomienia na cronie
  • Na podstawie krótkich testów, na razie żadnych problemów. Prawidłowo wykrył wszystkie zmiany (dotyczące zawartości i skonfigurowanych atrybutów plików), a także dodane i usunięte pliki.
  • Obsługuje skomplikowane wykluczenia plików: na przykład nie ma sensu sprawdzać plików tymczasowych z sumą kontrolną ani żadnego pliku, który powinien zmiana.
  • Oblicza wiele sum kontrolnych (konfigurowalne). Daje to stosunkowo dobre gwarancje na przyszłość - nawet jeśli jeden algorytm haszujący zostanie naruszony, baza danych integralności jest nadal przydatna, nawet w przypadku zamierzonych modyfikacji (w przeciwieństwie do rotacji bitów).
  • Sumy kontrolne są przechowywane w postaci zwykłego tekstu, a nagłówki zawierają definicje pól. Jest to przydatne, jeśli plik konfiguracyjny zostanie utracony lub zostanie przeanalizowany przez inny program.
  • Łatwy do przechowywania plik konfiguracyjny i baza danych sum kontrolnych na każdym dysku / CD / folderze (struktura). Dzięki temu wszystkie opcje konfiguracyjne są automatycznie zapisywane i łatwo jest ponownie uruchomić sprawdzanie integralności.

Punkty ujemne:

  • Konfiguracja wymaga edycji pliku konfiguracyjnego w edytorze tekstu, w porównaniu z ładnym interfejsem użytkownika. Podobnie, sprawdzanie wyników jest bezpośrednio na terminalu.
  • Najnowsza wersja pochodzi z 2010 roku, ale z drugiej strony jest kompletna, więc nie ma potrzeby ciągłych aktualizacji.
  • Integralność bazy danych sum kontrolnych nie jest automatycznie sprawdzana. Na szczęście zrobienie tego oddzielnie jest łatwe ( sha1sum checksums.db > checksums.db.sha1sum )
Działa dobrze w systemie Windows?
`aide --init` (lub cokolwiek innego, co próbowałem zrobić z` aide`) nie działa na Ubuntu - opiekunowie pakietu go zepsuli. Zamiast tego musisz użyć „aideinit”.
MD5 ma problemy z bezpieczeństwem, ale dlaczego ma to znaczenie dla celów PO? Nie chce bezpiecznie szyfrować poufnych danych. W rzeczywistości MD5 jest bardzo często używana jako suma kontrolna pliku - [przykład] (https://help.ubuntu.com/community/UbuntuHashes). Pomijając to, +1 za dobrą odpowiedź.
Kolejna kwestia - konfiguracja pliku tekstowego i wyjście CLI byłyby pozytywne dla wielu ludzi, a nie negatywne.
#2
+11
palacsint
2014-02-07 03:59:10 UTC
view on stackexchange narkive permalink

Od lat używam do tego cfv.

  • Obsługuje operacje rekurencyjne (możesz utworzyć jeden plik sum kontrolnych na katalog lub jeden plik sum kontrolnych dla całego poddrzewa).
  • Może ignorować wielkość liter i naprawiać opcje separatora ścieżek do użytku na wielu platformach, co jest całkiem przydatne, jeśli chcesz sprawdzić / utworzyć sumy kontrolne w różnych systemach plików i / lub systemach operacyjnych.
  • Jest to aplikacja konsolowa, ale ma ładny pasek postępu (w przeciwieństwie do zwykłego md5sum ).
  • Potrafi wykryć dodane pliki (opcja -u ).

Nie wiem czy działa lub Mac OS X lub nie, ale znajduje się w MacPorts.

Hmm. `sha1sum *> files.sha1sum; cfv` działa dobrze. Według man, `-r -m -u` jest odpowiednim zestawem opcji do sprawdzania plików bez hashów. Wydaje się, że działa dobrze, ALE jeśli plik z sumą kontrolną zostanie zmodyfikowany, nadal wyświetla OK. Jeśli plik z sumą kontrolną zostanie usunięty, poprawnie wypisuje "1 nie znaleziono, 1 niezweryfikowany". Miałem właśnie otworzyć zgłoszenie błędu, ale nie zawracałem sobie głowy rejestracją w sourceforge.
@Olli: Myślę, że nie potrzebujesz flagi „-m”. Zgodnie z instrukcją, `-m` * nie porównuje sum kontrolnych *. Spróbuj `cfv -T -uu -f test1.sha1` (jeśli masz jeden plik` sha1` dla pełnego drzewa katalogów).
z jakiegoś powodu sprawdza wszystko dwa razy (i tak, wiem, że komentarze nie są forum pomocy).
#3
+7
Journeyman Geek
2014-02-07 05:41:20 UTC
view on stackexchange narkive permalink

Żadna szkoła nie jest taka jak oldschool. Wprawdzie mam tu trochę stronniczości z mojego doświadczenia w kryminalistyce, ale możesz obliczyć sumy md5 i porównać je.

Chociaż ten wątek SO ma kilka interesujących metod, ja raczej lubię hashdeep. Zużycie pamięci jest niskie, chociaż przeżuwa kilka cykli procesora, ale dzięki magii trybu audytu automatycznie robi wszystko, o co prosisz za pośrednictwem wiersza poleceń - pobierając plik tekstowy i porównując go z tym, co zawiera .

Chociaż witryna ma pliki binarne dla systemu Windows, wiele dystrybucji i menedżerów pakietów Mac ma porty - możesz znaleźć pełną listę tutaj

hashdeep - w tym szacunki czasowe - brzmiało ładnie, ale interfejs mi się nie podoba: a) na terminalu mac pasek postępu / szacunki jest poważnie uszkodzony, b) dla folderów trzeba podać `--recursive`. W przeciwnym razie w `--audit` po prostu przechodzi rekurencyjnie i wypisuje` Znany plik nieużywany` dla każdego pliku, c) jeśli plik jest kopiowany, zgodnie z hashdeep jest przenoszony (a stary jest zgłaszany jako "Brak dopasowania"), zamiast „dodane”, d) audyt i aktualizacja wymagają dwóch przejść.
„Chociaż ten wątek SO ma kilka ciekawych metod […]”: Czy miał być link?
Myślę, że miał na myśli ten wątek _SR_.
Właśnie wypróbowałem * hashdeep * i spodziewałem się, że zgłosi pliki, które dodałem lub usunąłem od czasu utworzenia tabeli skrótów. Wygląda na to, że w ogóle nie ma możliwości ich zgłoszenia. Dziwne.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...