Это руководство покажет вам, как создавать сжатые, дублированные и зашифрованные резервные копии домашней директории вашего сервера автоматически с помощью Borg, сохраняя их на месте.
Предпосылки
- Сервер с Ubuntu 24.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo.
Конвенции
|
|
Обновите систему
Свежая установка Ubuntu 24.04 требует обновления пакетов до последних доступных версий.
|
|
Шаг 1. Установите Borg
На основном и удаленном сервере установите BorgBackup.
|
|
Перед созданием резервной копии убедитесь, что на обеих машинах достаточно места на диске. Для работы Borg требуется несколько гигабайт свободного места на основном сервере.
Войдите на удаленный сервер и создайте каталог, который Borg будет использовать в качестве хранилища резервных копий. Borg хранит резервные копии в хранилище в виде коллекции архивов.
|
|
На основном сервере инициализируйте хранилище в только что созданном каталоге, где username
- удаленный пользователь с доступом для чтения/записи к каталогу резервных копий, а offsite_server
- IP-адрес удаленного сервера. При появлении запроса введите надежную ключевую фразу для шифрования хранилища.
|
|
Borg сохраняет в хранилище ключ в конфигурационном файле, который должен присутствовать для доступа к хранилищу. Экспортируйте этот ключ на случай, если файл будет поврежден или потерян. Для доступа к хранилищу необходимы и ключ, и парольная фраза.
Создайте каталог для хранения ключа на основном сервере.
|
|
Экспортируйте ключ в этот каталог.
|
|
Чтобы импортировать ключ, если файл будет поврежден, измените экспорт на импорт.
Установите переменные окружения BORG_REPO
и BORG_PASSPHRASE
, чтобы предотвратить повторный ввод этих данных в этом сеансе.
|
|
Шаг 2. Доступ по SSH без пароля
Перед созданием резервной копии настройте Borg на подключение к удаленному серверу без пароля.
На основном сервере создайте пару ключей для Borg.
|
|
Сохраните ключ под именем /home/user/.ssh/id_rsa_borg
и не вводите кодовую фразу.
Добавьте новый открытый ключ на удаленный сервер.
|
|
После завершения убедитесь, что вы можете войти на удаленный сервер без парольной фразы, используя новый ключевой файл.
|
|
Чтобы повысить безопасность, ограничьте ключевой файл, чтобы он использовался только для Борга, и запретите удаленные входы.
На удаленном сервере отредактируйте файл authorized_keys
.
|
|
Найдите открытый ключ, который вы добавили ранее. Например:
|
|
Вставьте приведенную ниже командную директиву перед ssh-rsa, чтобы ограничить ключ только командой borg
и определенным путем. Обязательно измените /home/user/backup
на путь к хранилищу резервных копий, созданному ранее. Строка будет выглядеть следующим образом:
|
|
Сохраните и выйдите из файла и вернитесь на основной сервер.
Попробуйте войти в систему, используя файл ключа, и убедитесь, что доступ запрещен.
|
|
Нажмите Enter, чтобы получить второе сообщение.
|
|
После проверки экспортируйте переменную окружения BORG_RSH
, чтобы указать Borg использовать этот ключевой файл в данной сессии.
|
|
Шаг 3. Тестирование резервной копии
На основном сервере протестируйте резервное копирование файла или папки в домашнем каталоге. Назовите ее как-нибудь подходяще и убедитесь, что вам не предлагается ввести кодовую фразу.
|
|
Чтобы исключить файл или каталог из резервной копии, используйте команду --exclude=path/to/file/
. Например, если вы хотите исключить каталог .cache
при создании резервной копии, используйте:
|
|
Примечание: Укажите полный путь, когда указываете, что нужно исключить. Например, используйте
/home/user/.cache
, а не.cache
. Используйте несколько директив--exclude=path/to/file/
при исключении нескольких файлов и каталогов. Вы также можете использовать файл исключений, если у вас много шаблонов исключений.
Перечислите резервные копии, созданные в хранилище, с помощью команды list
, убедившись, что только что созданный архив резервных копий присутствует в нем.
|
|
Проверьте восстановление резервной копии с помощью borg extract
. По умолчанию Borg восстанавливает полный путь к резервной копии в текущий каталог. Например, в этом руководстве Borg восстанавливает директорию /home/user/path/to/file
. Чтобы не записывать данные, включите в команду параметр --dry-run
.
|
|
Чтобы извлечь один файл из архива, используйте:
$ borg extract ::backup_name /file/to/restore
По окончании можно удалить архив тестовых резервных копий.
|
|
Шаг 4. Настройка автоматического резервного копирования
Чтобы автоматизировать резервное копирование домашнего каталога, создайте сценарий резервного копирования, который будет запускаться ежедневно через cron
на основном сервере.
|
|
Введите следующее, изменяя детали по мере необходимости. Этот сценарий создает резервную копию каталога /home
, исключая лишние файлы, используя команду prune
для сохранения резервной копии на каждый день недели, одной на каждую неделю и одной на каждый месяц, автоматически удаляя лишние резервные копии для экономии места.
|
|
Сохраните и выйдите из файла.
Сделайте скрипт исполняемым.
|
|
Протестируйте сценарий, чтобы убедиться в успешном завершении резервного копирования.
|
|
Переместите скрипт в файл /etc/cron.daily
, чтобы он выполнялся автоматически каждый день.
|
|
Завершение
Теперь вы успешно настроили безопасное автоматическое резервное копирование домашней директории вашего сервера в удаленное место с помощью BorgBackup.
Вы также можете поделиться статьей со своими друзьями в социальных сетях, которым может быть интересна эта статья или просто оставить комментарий ниже. Спасибо.