Блог Metlivi

Как проверить автономную резервную копию дневника с помощью контрольных сумм файлов

Чтобы убедиться, что автономная копия цифрового дневника побайтово совпадает с исходником, создайте манифест контрольных сумм SHA-256 и список файлов на основе целевого источника, а затем проверьте резервную копию относительно этого защищенного эталона. Совпадение контрольной суммы подтверждает идентичность байтов перечисленных файлов; оно не доказывает, что список полон, что исходные файлы были корректными или читаемыми, или что ненадежный эталон является подлинным.

29 сентября 2026 г.5 мин чтенияПовседневная эстетика и самовыражениеАвтор: Metlivi Editorial Team
Раздел 1

Что дает проверка контрольной суммы

Контрольная сумма — это значение, вычисленное на основе содержимого файла. Если содержимое меняется, вычисленное значение, как ожидается, также изменится. Сравнение резервной копии с эталонным значением помогает выявить изменения при копировании или хранении. Digital Preservation Coalition описывает контрольные суммы как способ проверки успешной передачи и непрерывной целостности файлов, подчеркивая важность сравнения с заведомо правильным эталоном ([Fixity and checksums](https://www.dpconline.org/handbook/technical-solutions-and-tools/fixity-and-checksums)).

Эталон имеет решающее значение: если вы вычисляете и базу, и сравниваемое значение из одной и той же уже поврежденной копии, их совпадение не установит, что содержал исходный файл изначально. Совпадение также не доказывает, что запись дневника откроется без ошибок, что источник был полным или кто именно создал файлы. Относитесь к этому процессу как к побайтовому сравнению строго определенного набора файлов.

Раздел 2

Выбор и фиксация исходного набора

Определите стабильную папку с экспортированным дневником, резервную копию которой необходимо сделать, и завершите любые изменения перед хешированием. Этот пример охватывает обычные файлы, включая скрытые; он не следует по символическим ссылкам и не обеспечивает целостный захват активной базы данных работающего приложения. При необходимости экспортируйте связанные материалы в выбранную папку и сверьтесь с инструкциями по экспорту вашего приложения. Сохраняйте созданный инвентарный список и манифест вне этой папки.

Эти примеры требуют наличия Bash и GNU findutils/coreutils, как в Ubuntu Linux; они не предназначены для терминалов macOS или Windows без модификаций. В примере используются вымышленные локальные пути и новые имена выходных файлов. Используйте существующий родительский каталог для записей; выбирайте неиспользуемые имена файлов, чтобы не перезаписать ранее созданные эталоны. Замените их путями на вашем компьютере; храните личный дневник и сгенерированные записи локально. В руководстве Ubuntu описано создание контрольных сумм с помощью `sha256sum` и использование параметра `--check` для проверки ранее сохраненных результатов ([руководство по sha256sum](https://manpages.ubuntu.com/manpages/noble/man1/sha256sum.1.html)).

```bash ( set -euo pipefail set -C cd "/home/example/Diary" find . -type f -print0 | LC_ALL=C sort -z > "/home/example/diary-inventory.nul" xargs -0 -r sha256sum < "/home/example/diary-inventory.nul" > "/home/example/diary-source.sha256" test -s "/home/example/diary-source.sha256" ) ```

Подоболочка прерывает работу при ошибке смены каталога или сбое конвейера, отказывается перезаписывать существующие файлы записей и отклоняет пустой манифест контрольных сумм. Если она сообщает об ошибке, не используйте неполные выходные данные в качестве эталона. В инвентарном списке используются NUL-разделители, поэтому имена файлов, содержащие переносы строк, обрабатываются корректно. Обе записи остаются за пределами выбранной папки. Проверьте исходный набор относительно экспорта дневника, прежде чем доверять ему: манифест не покажет вложение, пропущенное до его создания.

Раздел 3

Защита эталона и копирование файлов

Храните манифест и инвентарный список отдельно как от рабочего источника, так и от автономной резервной копии. Защитите их от случайных правок и, по возможности, сохраните вторую защищенную копию. Сравнение контрольных сумм имеет ценность в качестве эталонной проверки только тогда, когда у вас есть основания доверять эталону и он сохранен в неизменном виде. Руководства по архивному сохранению также рассматривают информацию о целостности как данные, фиксируемые и используемые для аудита; NARA в своей программе цифрового сохранения описывает фиксацию целостности, отслеживание действий с файлами, а также создание манифестов и журналов ([National Archives digital preservation](https://www.archives.gov/preservation/digital-preservation/about)).

Скопируйте выбранную папку дневника на диск резервного копирования привычным вам способом. Держите накопитель отключенным, когда проверка не проводится. Приведенные здесь команды не выполняют копирование; они проверяют уже скопированные файлы. Избегайте редактирования, переименования или реорганизации резервной копии перед проверкой, поскольку изменение путей помешает манифесту обнаружить ожидаемые файлы.

Раздел 4

Проверка скопированных байтов

Подключите автономный диск и перейдите в скопированную папку дневника. Запустите проверку по эталонному манифесту, используя тот же алгоритм SHA-256 и относительные пути, зафиксированные в источнике:

```bash ( set -euo pipefail cd "/media/example/DiaryBackup/Diary" sha256sum --check --strict "/home/example/diary-source.sha256" ) ```

Манифест содержит относительные пути, начинающиеся с `./`, поэтому проверка запускается из папки скопированного дневника. Статус `OK` сообщает о совпадении для данного файла. Отсутствующие или несовпадающие файлы, некорректные строки контрольных сумм и ошибки команд требуют расследования; не скрывайте их с помощью параметра `--ignore-missing` и не предполагайте, что несколько видимых строк `OK` означают успешное прохождение всей проверки. Эти параметры описаны в [руководстве Ubuntu](https://manpages.ubuntu.com/manpages/noble/man1/sha256sum.1.html).

Эта проверка не сообщает о дополнительных файлах в резервной копии, которых не было в манифесте. Сравните инвентарный список файлов резервной копии с сохраненным исходным списком отдельным шагом, если вам нужно обнаружить лишние или неожиданные файлы в каталоге. Однако совпадение инвентарных списков все равно не доказывает, что ваш исходный выбор включал все материалы дневника, которые вы намеревались сохранить.

Раздел 5

Расследование несовпадений без уничтожения данных

Если файл не совпадает, зафиксируйте его путь и оставьте обе копии без изменений. Убедитесь, что используются правильный манифест и рабочая папка, а затем сравните источник и резервную копию отдельно. Проверьте, не объясняется ли расхождение редактированием, переименованием или неполным копированием. Сохраняйте несовпадающую копию во время расследования: автоматическая перезапись уничтожит доказательства.

Рекомендации по цифровому сохранению советуют заменять копию с нарушенной целостностью на заведомо исправную копию, что требует наличия другого надежного экземпляра ([Digital Preservation Coalition](https://www.dpconline.org/handbook/technical-solutions-and-tools/fixity-and-checksums)). Для личного дневника такое решение принимается только после сопоставления всех доступных свидетельств. Контрольные суммы выявляют различия; они не восстанавливают файлы и не выбирают правильную версию за вас.

Раздел 6

Ограничения и практический учет

Ведите краткий локальный журнал с указанием исходной папки, даты создания эталона, алгоритма, расположения манифеста и результатов каждой проверки. Для последующих проверок сохраняйте первоначальный эталон, а не создавайте его заново из проверяемой резервной копии. После преднамеренного редактирования или конвертации задокументируйте новую версию отдельно. Регулярно проводите пробные открытия и тестовые восстановления: одна лишь неизменность байтов не гарантирует, что ваш дневник останется пригодным для использования.

Материалы по теме

Продолжить изучение темы