Shanraq.org Shanraq.org
Резервная копия, обновление и журнал событий
Общество

Информатика: создаём своего цифрового помощника Урок 60 из 72

Резервная копия, обновление и журнал событий

Представьте запасной ключ от дома: если его никто ни разу не пробовал, он может не открыть замок.

Где мы на карте

Урок 60 из 72. Блок «Цифровая безопасность» (55–62). Мы продолжаем локального помощника с тремя вымышленными задачами. Каждая мера имеет конкретную границу: учебная версия не становится готовым публичным сервисом.

Резервная копия, обновление и журнал событий

Ситуация и вопрос

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

Новые слова без пропусков

Резервная копия — отдельный экземпляр данных для восстановления. Контрольная сумма SHA-256 обнаруживает случайное или намеренное изменение файла, если исходный отпечаток сохранён надёжно. Журнал событий сообщает о действиях, но в нём не должны лежать пароли и личные тексты. Обновление исправляет известные ошибки; устанавливайте его из проверенного источника и сохраняйте возможность отката.

Опорный сигнал

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

Разбираем шаг за шагом

В step-06 создайте базу через data_assistant.py init. Выполните python3 security_assistant.py verify assistant.db и ожидайте tasks=3 sessions=4. Затем создайте backups/first.db через команду backup и восстановите в новый restored.db; сравните отчёты 45/0/25. Команда откажется перезаписывать существующее назначение. Добавьте байт в учебную копию и убедитесь, что проверка SHA-256 отклонит восстановление. Не портите единственную рабочую базу.

Предскажите и проверьте

Запишите ожидаемый вывод до запуска кода. Выполните его в указанной папке step-06 или step-07, сравните результат символ за символом и объясните каждую строку. Затем измените один безопасный вымышленный вход и повторите цикл «предсказать — запустить — изменить — объяснить — проверить». Наблюдение на маленьком наборе не превращайте в обещание для реальных людей.

from pathlib import Path
from tempfile import TemporaryDirectory
from data_store import create_database
from security_assistant import backup, restore, verify
with TemporaryDirectory() as folder:
    db, saved, restored = (Path(folder) / name for name in ("live.db", "backup.db", "restored.db"))
    create_database(db, "tasks.json", "study_sessions.csv")
    backup(db, saved)
    print(verify(db), restore(saved, restored))

Ожидаемый вывод

(3, 4) (3, 4)

Поймайте ошибку

Совпадающий SHA-256 рядом с копией не доказывает авторство: злоумышленник может заменить оба файла. Сам факт создания копии не доказывает, что из неё получится рабочая база. Не записывайте секреты в журналы.

Изменение проекта

В проекте 1.3 сохраняются исходные три задачи, четыре занятия и правила напоминаний. Новые действия вынесены в security_assistant.py: проверка, создание отдельной копии и восстановление только в новый файл. Запишите, от какой угрозы помогает это изменение и от какой не помогает; учебные данные остаются вымышленными.

Задание и доказательство

Покажите команды, ожидаемые числа 3/4 и 45/0/25, отказ при подмене и отказ от перезаписи. Объясните, где хранить отдельную копию и как проверить обновление перед применением.

Перенос в новую ситуацию

Семья хранит фотографии на одном диске и «копию» в соседней папке того же диска. Что произойдёт при поломке диска?

Возврат через 1, 7 и 30 дней

Через 1 день нарисуйте схему по памяти и найдите в ней одну границу применения. Через 7 дней объясните её товарищу, не читая урок, и решите 7 из 10 вопросов блока; ошибочные ответы разберите на конкретных входах. Через 30 дней откройте свежую копию проекта, воспроизведите проверку и перенесите принцип в новый пример. Сохраните свой протокол с входом, ожидаемым и фактическим результатом.

Первоисточник для проверки

Официальный документ

Следующий урок

Приватность, авторство и цифровое благополучие

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить доказательство проекта

Запишите наблюдение, объяснение, исправление ошибки и изменение своего проекта. Модель укажет первую перепутанную или недоказанную связь, но не даст готовый ответ.

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.