Как проверять архивные бэкапы?
================================

 Недаром же есть присказка, что люди делятся на тех, кто не делает бэкапы, кто делает бэкапы и тех, кто проверяет бэкапы. А как это «проверять бэкапы», если речь идёт не о базах SQL, которые можно развернуть и убедиться в работоспособности, а о простом фотоархиве, например?  

  

Есть домашний Архив ~1ТБ.  

Хочу руками регулярно делать бэкапы на два диска (чтобы один из них уносить на работу).  

Как проверять, что бэкап прошёл успешно? Как убедиться, что половина фотографий не потеряла по дороге пиксели/байты?   

  

Выборочно проверять руками? Или есть специализированное ПО?  

Или, например, Total Commander (или Acronis True Image) при создании резервной копии и так заботится о корректности бэкапа? Или есть какие-то другие «проверялки»? Или упомянутых инструментов достаточно?  

  

Заранее спасибо, всегда выбираю Ответ-решение. 

 Получить MD5 у исходных файлов и сравнивать с бэкапом. 

> Или, например, Total Commander (или Acronis True Image) при создании резервной копии и так заботится о корректности бэкапа?

Нет, верификация занимает время, если бы она делалась автоматически при копировании каждого файла, то копирование происходило бы медленнее, а этого никому не хочется. Поэтому верификация - отдельный процесс, только по необходимости.  

Не знаю как Total, а его основной конкурент FAR умеет сравнивать папки по содержимому файлов; может быть и Total так умеет.  

  

Но это сиюминутное решение, после бэкапа сверить, пока оригинал доступен. Может потребоваться сверка, когда оригинала под рукой нет. Например, рабочий диск умер, есть два бэкапа, но содержимое одного файла отличается между этими двумя бэкапами; как понять, какой из них правильный, а какой косячный? Для этого можно вычислять контрольные суммы или хэш-суммы файлов. Один из самых популярных (уточню: для повседневной верификации) хэш-алгоритмов - это MD5. На Линуксе команда md5sum из-коробки способна обсчитать все файлы в папке, а также сверить с хэшами, ранее записанными в текстовый файл. На винде с этим похуже, легко нагуглить команду для вычисления MD5 отдельного файла, но не всех файлов в папке. Приходится устанавливать дополнительный софт, например этот: [www.nirsoft.net/utils/hash\_my\_files.html](http://www.nirsoft.net/utils/hash_my_files.html) Или писать свой скрипт.   

  

Считаете хэши от оригинальных файлов, записываете хэши в тектовый файл, бэкапите этот тектовый файл вместе со всем остальным. Когда нужно сверить - считаете хэши от бэкапных файлов и сверяете с записанными в файле. 

 Известная проблема, написать программу, которая будет проверять корректность бакапа, но кто проверит проверяющего? еще одну программу писать?  

  

Большие шансы что если будет ошибка в коде организации и проверки резервного копирования, что это будет код учета списка файлов, т.е. если ты ошибешься в указании что бакапить (например новый каталог забыл добавить) то скрипты проверки, используя тот же список файлов и каталогов что и скрипты резервного копирования не обнаружат этого.  

  

Поэтому в конечном счете нужно это делать вручную, не доверяя своим ранним настройкам.  

  

p.s. по теме, к примеру если используешь популярный архиватор winrar то у него есть опция проверки архива после архивации, а так любые утлиты сравнения файлов или подсчета хеша, та же md5sum (linux пакет утилит можно получить установив cygwin)