3. Restore
Глава 3: Восстановление данных — От одного файла до полного реанимирования
Резервная копия имеет ценность только тогда, когда из нее можно быстро и предсказуемо достать данные. Restic предлагает невероятно гибкие инструменты восстановления: вам не нужно распаковывать гигабайтный архив целиком, чтобы вытащить один случайно удаленный конфигурационный файл. В этой главе мы разберем как точечное, так и полное восстановление системы.
1. Работа со снимками (Snapshots)
Каждый раз, когда запускается бэкап, Restic создает так называемый снимок (snapshot). Каждый снимок имеет свой уникальный ID (например, a1b2c3d4) и привязан к конкретному времени.
Чтобы увидеть список всех доступных точек восстановления, выполните команду:
sudo restic -r /mnt/win_backup/homeserver_backup --password-file /home/stan/.restic_pw snapshots
В выводе терминала вы увидите таблицу со всеми вашими бэкапами. Слово latest в командах ниже всегда указывает на самый свежий снимок в этой таблице.
2. Точечное восстановление: Как достать один файл или папку
Частый сценарий: вы хотите поделиться чистым конфигом с другом (предварительно стерев пароли) или случайно сломали настройки одного из сервисов и хотите откатиться назад.
Вариант А: Просмотр содержимого файла прямо в терминале (Dump)
Если вам не нужен сам файл на диске, а хочется просто быстро скопировать его текст из бэкапа, используйте команду dump. Она выведет содержимое файла на экран без физической распаковки:
sudo restic -r /mnt/win_backup/homeserver_backup --password-file /home/stan/.restic_pw dump latest /home/stan/matrix/homeserver.yaml
Вы можете скопировать этот текст мышкой прямо из консоли, затереть секретные токены и переслать кому угодно.
Вариант Б: Извлечение файла на диск в определенную папку (Restore с фильтром)
Если вам нужно физически положить файл или целую папку где-нибудь рядом (например, во временную директорию /tmp), чтобы спокойно изучить или отредактировать, используйте команду restore с флагом --include:
sudo restic -r /mnt/win_backup/homeserver_backup --password-file /home/stan/.restic_pw restore latest --target /tmp --include /home/stan/matrix/homeserver.yaml
Что произойдет: Restic зайдет в последний бэкап, найдет указанный файл и воссоздаст всю структуру папок внутри /tmp. На выходе вы получите файл по адресу: /tmp/home/stan/matrix/homeserver.yaml
3. Полное восстановление сервера (Катастрофа / Переезд на новый ПК)
Если ваш сервер сгорел, жесткий диск умер или вы просто купили новое железо и хотите развернуть всё заново — это ваш сценарий.
Шаг 3.1: Подготовка новой системы
- Установите чистый Debian Linux на новый компьютер/сервер.
- Установите Docker, Docker Compose, Nginx и Certbot.
- Повторите шаги из Главы 1: установите сам
resticиcifs-utils, положите ваш файл пароля.restic_pwи настройте автоматическое монтирование вашей сетевой шары Windows в/etc/fstab. - Убедитесь, что сетевой диск примонтирован и доступен по адресу
/mnt/win_backup/homeserver_backup.
Шаг 3.2: Запуск тотального восстановления
Чтобы развернуть все бэкапируемые папки (/home, /etc, /root) обратно на свои места в корень новой системы, укажите в качестве целевой папки (--target) самый корень диска — /:
sudo restic -r /mnt/win_backup/homeserver_backup --password-file /home/stan/.restic_pw restore latest --target /
Что произойдет: Restic возьмет самый свежий снимок и начнет аккуратно раскладывать файлы по их родным местам. Папка /home/stan заполнится вашими проектами, конфигурации Nginx и fstab вернутся в /etc, а скрипты — в /root.
Шаг 3.3: Оживление Docker-контейнеров
После того как Restic завершит работу, ваши контейнеры еще не запущены, но все их файлы уже лежат на диске. Теперь достаточно просто зайти в папки проектов и запустить их. Docker сам увидит конфигурационные файлы, скачает из интернета нужные образы (ведь мы их не бэкапили ради экономии места) и подцепит восстановленные базы данных.
Запустите ваши сервисы:
cd ~/homecloud && sudo docker compose up -d && cd ~/matrix && sudo docker compose up -d && cd ~/firefly-iii && sudo docker compose up -d && cd ~/wiki && sudo docker compose up -d && cd ~/ollama && sudo docker compose up -d
Примечание: Так как веса нейросетей Ollama, Piper и Whisper мы исключили из бэкапа, при первом обращении к ним контейнеры автоматически скачают нужные модели из интернета заново.
4. Полезные команды для обслуживания репозитория
Со временем бэкапов становится слишком много, и они начинают занимать место на сетевом диске. Для наведения порядка используйте следующие команды:
- Проверка целостности (Профилактика). Раз в пару месяцев проверяйте, что файлы в бэкапе не повреждены физически:
sudo restic -r /mnt/win_backup/homeserver_backup --password-file /home/stan/.restic_pw check - Очистка старых бэкапов (Prune). Команда удаляет старые снимки, оставляя, например, только последние 7 ежедневных, 4 еженедельных и 12 ежемесячных бэкапов, а также физически стирает удаленный мусор с диска:
sudo restic -r /mnt/win_backup/homeserver_backup --password-file /home/stan/.restic_pw forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
На этом создание вашей персональной системы резервного копирования завершено. Ваши данные под надежной защитой криптографии и дедупликации Restic!
Нет комментариев для отображения
Нет комментариев для отображения