W skrócie: zapisz hash każdego pliku, gdy tworzysz kopię, i później ponownie sprawdź kopię z tym zapisem.
Jeśli hashe wciąż się zgadzają, bajty wciąż tam są. Nic innego tego nie dowodzi.
Psują się cztery rzeczy, a żadna się nie ogłasza:
Z zewnątrz wszystkie cztery wyglądają tak samo: katalog pełen plików z wiarygodnymi nazwami i datami.
Gdy tworzysz kopię, zapisz, co zapisałeś:
find /Volumes/Backup/Documents -type f -exec shasum -a 256 {} + > ~/backup.sha256
Później zapytaj, czy kopia nadal zgadza się z tym zapisem:
shasum -a 256 -c ~/backup.sha256
Każdy wiersz wraca jako OK lub FAILED. Plik, który całkiem zniknął, jest zgłaszany jako nieczytelny, i tak ma być: brakujący plik to awaria, a nie brak dowodów.
Trzymaj plik z hashami gdzieś poza dyskiem kopii. Zapis trzymany obok tego, co opisuje, ginie razem z nim.
Osobne pytanie, i to na nim ludzie się łapią. Najnowszy plik w kopii mówi Ci, kiedy zadanie ostatnio się udało:
find /Volumes/Backup -type f -newermt '-7 days' | head
Brak wyniku oznacza, że od tygodnia nic nie zostało zapisane. Jeśli polegasz na Time Machine, zapytaj go wprost:
tmutil latestbackup
Sumy kontrolne dowodzą, że bajty przetrwały. Nie dowodzą, że odzyskasz plik, bo to zależy też od narzędzia, indeksu, klucza szyfrowania i tego, czy pamiętasz, jak tego wszystkiego używać. Raz lub dwa razy w roku przywróć kilka plików do folderu roboczego i je otwórz.
Wybierz plik, za którym naprawdę byś tęsknił, a nie dokument testowy. Chodzi o to, by odkryć, że klucz odzyskiwania jest na karteczce w Macu, którego kopię robisz, i odkryć to w spokojny wtorek.
Automatyczne sprawdzenie ma trzy cechy, których nie ma ręczne: działa, czy pamiętasz, czy nie, sprawdza każdy fragment, łącznie z tymi, o których nie pomyślałeś, i mówi Ci w chwili, gdy się nie uda.
Copy Shelter odczytuje kopię i sprawdza każdy fragment z hashem, pod którym został zapisany, zgłasza usunięty fragment jako brakujący i liczy tylko kopie, które naprawdę sprawdził. Odzywa się też po 7 dniach bez udanej kopii, co wyłapuje czwartą awarię z listy powyżej, tę najczęstszą.
shasum jest wolny?Czyta każdy bajt, więc trwa mniej więcej tyle, co kopiowanie danych. O to właśnie chodzi: sprawdzenie, które nie czyta danych, nie wykryje dysku, który ich nie oddaje.
Tak, a losowa próbka jest dużo lepsza niż nic. find ... | shuf -n 50 daje pięćdziesiąt plików do sprawdzenia, co szybko wyłapie psujący się dysk lub zatrzymane zadanie, choć nie pojedynczy uszkodzony plik.
Dostawcy pamięci liczą sumy kontrolne własnych kopii, a to chroni Cię przed awarią ich dysków. Nie chroni przed wysyłaniem, które się nie skończyło, plikiem, który był uszkodzony już przy wysyłaniu, ani synchronizacją, która się zatrzymała. Sprawdzenie musi być po Twojej stronie.
Nie nadpisuj kopii. Najpierw zrób drugą kopię z Maca na inny nośnik, a potem ustal, która z dwóch jest zła. Nieudane sprawdzenie kopii, którą od razu robisz ponownie, to nieudane sprawdzenie, którego dowody właśnie zniszczyłeś.
Co miesiąc to rozsądny rytm dla pełnego sprawdzenia, co tydzień dla próbki, a raz lub dwa razy w roku dla prawdziwego przywrócenia. Wszystko według harmonogramu jest lepsze niż wszystko, o czym trzeba pamiętać.
Zobacz też: zasada kopii 3-2-1 i co ludzie robią źle.