Я уже писал про резервное копирование и для чего это нужно. Я не буду повторяться в терминологии, так как в этом нет никакого смысла. Теперь наша задача это все дело настроить. Погнали!
Подготовка
Прикупил я второй жесткий диск размером 2.5 дюйма для сервера и подключил его уже обычным переходником USB->SATA. Как его подключить можно почитать «Домашний сервер (операционная система)«. Сажу только подключен он у меня по пути /mnt/backup. Для резервного копирования буду использовать программу BorgBackup. На самом деле это форк программы Attic. Собственно мне лично эта система понравилась своей простотой и достаточной эффективностью.
Для начала установим ее:
apt install -y borgbackup
Теперь нужно создать репозиторий для хранения данных:
borg init -e none /mnt/backup/server
Здесь я создаю новый репозиторий без шифрования. На самом деле в промышленной эксплуатации этого делать не стоит, так как данные могу слить, но у меня домашний сервер и изолирован от внешнего мира, по этому я не стал заморачиватся. Для более подробной информации стоит почитать документацию и статью на хабре, где об этом прекрасно написано.
Теперь нужно создать скрипт для выполнения копирования. Создаем его и заполняем его следующим содержимым:
#!/bin/bash
/usr/bin/borg create --stats /mnt/backup/server/cloud::"cloud--{now:%Y-%m-%d_%H:%M:%S}" /mnt/storage
/usr/bin/borg prune --keep-last=4 /mnt/backup/server
Первая строка создает новую резервную копию, а вторая очищает все предыдущие копии и оставляет только последние 4 штуки. Это нужно чтобы резервные копии перерабатывались и не забивали хранилище. Если же требуется настроить другое поведение, то это можно почитать в документации. Там много интересных функций.
Далее нужно сделать скрипт исполняемым:
chmod +x backup.sh
И добавить это в планировщик. Планировщик редактируется так:
crontab -e
И добавляется следующая строка:
30 0 * * 6 <путь до скрипта>
Как пользоваться планировщиком написано здесь.
Восстановление
Чтобы восстановить файлы из резервной копии я делаю монтирование нужной мне копии в директорию по просто пользуюсь копированием. Например:
borgfs <путь к репозиторию>::<имя резервной копии> <куда смонтировать>
И это всё?
Да, это всё. Данный этап можно считать законченным, так как теперь по расписанию планировщика будет выполняться задание, которое и будет выполнять резервное копирование наших файлов. Так как BorgBackup сжимает данные да еще имеет функцию дедубликации. Эффективность хранения архивных копий прям возрастает.