- Настроить стенд Vagrant с двумя виртуальными машинами: backup_server и client.
- Настроить удаленный бекап каталога /etc c сервера client при помощи borgbackup.
Резервные копии должны соответствовать следующим критериям:
- директория для резервных копий /var/backup. Это должна быть отдельная точка монтирования. В данном случае для демонстрации размер не принципиален, достаточно будет и 2GB;
- репозиторий дле резервных копий должен быть зашифрован ключом или паролем - на ваше усмотрение;
- имя бекапа должно содержать информацию о времени снятия бекапа;
- глубина бекапа должна быть год, хранить можно по последней копии на конец месяца, кроме последних трех. Последние три месяца должны содержать копии на каждый день. Т.е. должна быть правильно настроена политика удаления старых бэкапов;
- резервная копия снимается каждые 5 минут. Такой частый запуск в целях демонстрации; написан скрипт для снятия резервных копий. Скрипт запускается из соответствующей Cron джобы, либо systemd timer-а - на ваше усмотрение;
- настроено логирование процесса бекапа. Для упрощения можно весь вывод перенаправлять в logger с соответствующим тегом. Если настроите не в syslog, то обязательна ротация логов.
- Запустите стенд на 30 минут.
- Убедитесь что резервные копии снимаются.
- Остановите бекап, удалите (или переместите) директорию /etc и восстановите ее из бекапа.
-
Создаем стенд
-
Проверяем
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