Введение
В мире вычислений данные бесценны. Потеря данных, будь то из-за сбоя оборудования, случайного удаления или злонамеренных атак, может иметь катастрофические последствия. Устойчивость данных (data resilience) — это практика обеспечения защиты, доступности и возможности восстановления ваших данных в случае сбоя.
Эта лабораторная работа познакомит вас с двумя фундаментальными концепциями устойчивости данных в системах Linux: созданием резервных копий и проверкой целостности файлов. Для выполнения этих задач вы будете использовать стандартные инструменты командной строки Linux.
Вы научитесь:
- Использовать команду
tarдля создания сжатого архива (резервной копии) важных файлов. - Симулировать сценарий потери данных путем удаления файлов.
- Восстанавливать данные из резервного архива.
- Использовать контрольные суммы (checksums) с помощью
md5sumдля проверки того, что ваши файлы не были изменены или повреждены.
К концу этой лабораторной работы вы получите практический опыт работы с основными навыками, необходимыми любому системному администратору или разработчику.
Создание локальной резервной копии критически важных файлов с помощью Tar
На этом шаге вы научитесь создавать сжатую резервную копию каталога с помощью утилиты tar (Tape Archive). tar — это мощная и широко используемая команда для объединения файлов и каталогов в один архивный файл, который затем может быть сжат для экономии места. Это распространенный метод создания локальных резервных копий.
Сначала давайте проверим файлы, которые были созданы для вас скриптом настройки. Вся ваша работа будет проводиться в каталоге ~/project.
Выведите содержимое каталога ~/project:
ls -R ~/project
Вы должны увидеть каталог critical_data с его файлами и пустой каталог backups.
/home/labex/project:
backups critical_data
/home/labex/project/backups:
/home/labex/project/critical_data:
config.txt user_data.csv
Теперь давайте создадим сжатую резервную копию каталога critical_data и сохраним ее в каталоге backups. Мы будем использовать команду tar со следующими опциями:
c: Создать новый архив.z: Сжать архив с помощью gzip. Поэтому файл будет иметь расширение.gz.v: Подробный режим (verbose). Выводить список файлов по мере их обработки.f: Указывает имя файла архива для создания.-C: Перейти в указанный каталог перед созданием архива. Это гарантирует, что мы сохраним относительные пути вместо абсолютных, делая резервную копию более переносимой и избегая вложенных структур каталогов при распаковке.
Выполните следующую команду в вашем терминале:
tar -czvf ~/project/backups/backup.tar.gz -C ~/project critical_data
Команда выведет имена файлов, которые она добавляет в архив:
critical_data/
critical_data/config.txt
critical_data/user_data.csv
Теперь вы успешно создали резервную копию. Для уверенности вы можете вывести содержимое каталога backups:
ls ~/project/backups
Вы должны увидеть ваш новый файл резервной копии:
backup.tar.gz
Имитация потери данных и восстановление из резервной копии
На этом шаге вы смоделируете распространенный сценарий бедствия: случайное удаление данных. Затем вы используете файл резервной копии, созданный на предыдущем шаге, для восстановления потерянных данных.
Сначала давайте смоделируем потерю данных, безвозвратно удалив каталог critical_data. Команда rm -rf очень мощная и должна использоваться с осторожностью; она рекурсивно (-r) и принудительно (-f) удаляет каталоги и файлы без запроса подтверждения.
Выполните следующую команду для удаления каталога:
rm -rf ~/project/critical_data
Теперь проверьте, что каталог удален, выведя содержимое вашего каталога проекта:
ls ~/project
Вы увидите, что каталог critical_data больше не существует:
backups
Не волнуйтесь! Именно для этого у нас есть резервные копии. Теперь давайте восстановим каталог из архива backup.tar.gz. Мы снова будем использовать команду tar, но с другими опциями:
x: Извлечь файлы из архива.z: Распаковать архив с помощью gzip.v: Подробный режим, чтобы видеть файлы по мере их извлечения.f: Указывает имя файла архива для использования.-C: Указывает каталог, в который будут извлечены файлы. Мы извлечем их в~/project.
Выполните эту команду для восстановления ваших данных:
tar -xzvf ~/project/backups/backup.tar.gz -C ~/project
Вы увидите вывод извлекаемых файлов:
critical_data/
critical_data/config.txt
critical_data/user_data.csv
Обратите внимание, что tar сохранил исходную структуру каталогов, но без префиксов абсолютных путей, поскольку мы использовали опцию -C при создании резервной копии. Давайте проверим, было ли восстановление успешным. Снова выведите содержимое каталога ~/project:
ls -R ~/project
Вы должны увидеть, что каталог critical_data и все его исходные файлы были восстановлены.
/home/labex/project:
backups critical_data
/home/labex/project/backups:
backup.tar.gz
/home/labex/project/critical_data:
config.txt user_data.csv
Вы успешно справились с симулированным событием потери данных.
Мониторинг целостности файлов с помощью контрольных сумм
На этом шаге вы научитесь отслеживать целостность файлов. Резервная копия защищает вас от потери данных, но она не говорит вам, были ли файлы незаметно повреждены или злонамеренно изменены. Контрольная сумма (или хэш) — это уникальный цифровой отпечаток файла. Если изменится хотя бы один бит в файле, контрольная сумма полностью изменится. Это делает ее отличным инструментом для проверки целостности файлов.
Мы будем использовать команду md5sum, которая вычисляет контрольную сумму MD5. Хотя SHA-256 (sha256sum) является более криптографически безопасным, md5sum проста и достаточна для этой демонстрации.
Сначала давайте сгенерируем контрольные суммы для наших критически важных файлов и сохраним их в справочный файл.
md5sum ~/project/critical_data/* > ~/project/checksums.md5
Теперь просмотрите содержимое только что созданного файла checksums.md5:
cat ~/project/checksums.md5
Вывод покажет уникальную контрольную сумму для каждого файла. Ваши значения контрольных сумм будут идентичны этим:
d7118547a95c5470575962481c2e358c /home/labex/project/critical_data/config.txt
b643407358b9de495715f13432577d33 /home/labex/project/critical_data/user_data.csv
Теперь давайте смоделируем несанкционированное изменение одного из файлов. Мы добавим комментарий в файл config.txt.
echo "## This is a change" >> ~/project/critical_data/config.txt
Файл был изменен. Для наблюдателя, просто просматривающего список файлов, ничего не кажется неправильным. Но мы можем использовать наш файл контрольных сумм для проверки изменений. Опция -c указывает md5sum проверять файлы по списку.
md5sum -c ~/project/checksums.md5
Команда проверит каждый файл, указанный в checksums.md5, на соответствие его текущему состоянию на диске. Вывод ясно покажет, что config.txt был изменен:
/home/labex/project/critical_data/config.txt: FAILED
/home/labex/project/critical_data/user_data.csv: OK
md5sum: WARNING: 1 computed checksum did NOT match
Этот статус "FAILED" немедленно оповещает вас о том, что файл больше не находится в своем первоначальном, доверенном состоянии. Это мощный метод для обнаружения повреждения данных или нарушений безопасности.
Резюме
Поздравляем с завершением этой лабораторной работы! Вы получили практический опыт работы с основными методами обеспечения устойчивости данных в среде Linux.
В этой лабораторной работе вы научились:
- Создавать резервные копии: Вы использовали команду
tarдля создания сжатой резервной копии критически важных файлов, что является ключевым навыком для предотвращения потери данных. - Восстанавливать данные: Вы смоделировали сценарий потери данных и успешно восстановили свои файлы из архива
tar, продемонстрировав полный цикл резервного копирования и восстановления. - Проверять целостность файлов: Вы использовали
md5sumдля генерации и проверки контрольных сумм файлов, что является мощным методом обнаружения несанкционированных изменений или повреждения данных.
Эти навыки необходимы для поддержания безопасности и доступности любой системы. Регулярное резервное копирование данных и проверка их целостности являются важнейшими компонентами ответственного администрирования систем и надежного развертывания приложений.



