Skip to content

Latest commit

 

History

History
78 lines (57 loc) · 5.21 KB

README.md

File metadata and controls

78 lines (57 loc) · 5.21 KB

Настраиваем бэкапы

Описание/Пошаговая инструкция выполнения домашнего задания:

  • Настроить стенд Vagrant с двумя виртуальными машинами: backup_server и client.
  • Настроить удаленный бекап каталога /etc c сервера client при помощи borgbackup.

Резервные копии должны соответствовать следующим критериям:

  • директория для резервных копий /var/backup. Это должна быть отдельная точка монтирования. В данном случае для демонстрации размер не принципиален, достаточно будет и 2GB;
  • репозиторий дле резервных копий должен быть зашифрован ключом или паролем - на ваше усмотрение;
  • имя бекапа должно содержать информацию о времени снятия бекапа;
  • глубина бекапа должна быть год, хранить можно по последней копии на конец месяца, кроме последних трех. Последние три месяца должны содержать копии на каждый день. Т.е. должна быть правильно настроена политика удаления старых бэкапов;
  • резервная копия снимается каждые 5 минут. Такой частый запуск в целях демонстрации; написан скрипт для снятия резервных копий. Скрипт запускается из соответствующей Cron джобы, либо systemd timer-а - на ваше усмотрение;
  • настроено логирование процесса бекапа. Для упрощения можно весь вывод перенаправлять в logger с соответствующим тегом. Если настроите не в syslog, то обязательна ротация логов.
  • Запустите стенд на 30 минут.
  • Убедитесь что резервные копии снимаются.
  • Остановите бекап, удалите (или переместите) директорию /etc и восстановите ее из бекапа.

Решение

  1. Создаем стенд

  2. Устанвливаем пакеты, создаем пользователя

  3. Конфигурируем сервер бекапов

  4. Конфигурируем клиента

  5. Проверяем

vagrant ssh client

проверим состояние таймеров

[vagrant@client ~]$ systemctl list-timers --all
NEXT                         LEFT          LAST                         PASSED       UNIT                         ACTIVATES
Fri 2022-11-04 16:54:44 UTC  4min 52s left n/a                          n/a          borg-backup.timer            borg-backup.service
Fri 2022-11-04 17:01:39 UTC  11min left    n/a                          n/a          systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Fri 2022-11-04 17:33:45 UTC  43min left    n/a                          n/a          dnf-makecache.timer          dnf-makecache.service
Sat 2022-11-05 00:00:00 UTC  7h left       Fri 2022-11-04 16:46:39 UTC  3min 12s ago unbound-anchor.timer         unbound-anchor.service

проверим наличие бекапов

[borg@client vagrant]$ borg list borg@backup:/var/backup/
Enter passphrase for key ssh://borg@backup/var/backup: 
etc-2022-11-04_16:49:44              Fri, 2022-11-04 16:49:45 [8a259a774a6179ae673893707010cafb701d22709096c0131e76fa9a14fec62e]
etc-2022-11-04_16:54:47              Fri, 2022-11-04 16:54:47 [5fe71862f0bada307d9a75d3d1612e3c74eaff5259eac36993497183793c0db6]
etc-2022-11-04_17:00:47              Fri, 2022-11-04 17:00:47 [c151484b6060ee774c05d9149f2be5b32b366dfbe9aa3ddc99aa4e6d5671265c]
etc-2022-11-04_17:06:47              Fri, 2022-11-04 17:06:47 [9f141fa7c24d989646380546044a553537048d94d4d54614ca2674f88c9b9cd3]
etc-2022-11-04_17:12:47              Fri, 2022-11-04 17:12:47 [010dc60af20422eaf2cb4b645e164d6be2950adf981a4e26a7ef2d771bcaa327]
etc-2022-11-04_17:18:19              Fri, 2022-11-04 17:18:19 [24bba80ff1be49f03a23ddcec56bf658a84f0c7569aab5e8440566e47a6f52c2]
etc-2022-11-04_17:23:47              Fri, 2022-11-04 17:23:47 [37c4b1a82478cc090d47263db905279a9cfe44248fdc2af2f47f4fb13b067212]
etc-2022-11-04_17:29:47              Fri, 2022-11-04 17:29:47 [aec81f4afa8e2af3551cb7f78f03471faa77143b465599bb92d169d5adfc677d]

Тестируем извлечение

# переходим во врменную директорию
cd /tmp

# извлекаем из бекапа
sudo borg extract borg@backup:/var/backup/::etc-2022-11-04_17:29:47  etc 

# 
[root@client ~]# mv /etc/ /etc_old
[root@client ~]# mv /tmp/etc/ /etc