Реализация бекапа общей папки на сервере SRV1-HQ с использованием systemctl

Задание:

15) Реализация бекапа общей папки на сервере SRV1-HQ с использованием systemctl

  • a) Бекап должен архивировать все данные в формат tar.gz и хранить в директории /var/bac/.
    • 1. Архивация должна производиться благодаря юниту типа service с названием backup.
    • 2. Сервис должен включатся автоматический при загрузке.
      • b) Время выполнение бекапа каждый день в 8 часов вечера.
        • 1. Используйте юнит типа timer для выполнения.
        • 2. Если устройство будет выключено, то архивация производится сразу после запуска.

Вариант реализации:

SRV1-HQ:

  • Создаём директорию для хранения бэкапа общей папки:
mkdir /var/bac/
  • Создаём юнит типа service с названием backup:
vim /etc/systemd/system/backup.service
    • помещаем в данный файл — следующее содержимое, где:
      • Description — описание юнита;
      • Type — тип юнита (очень важный параметр, oneshot — если подразумевается разовый запуск утилиты или скрипта, то подойдет этот тип)
      • ExecStart — команда, которая запускает службу. Именно в этом параметре нужно указать главный исполняемый файл (утилиту или скрипт), ради которого мы создаём службу
      • WantedBy — если мы включим автозагрузку этой службы (с помощью команды systemctl enable <имя службы>), то она должна запуститься при загрузке мультипользовательского режима (multi-user.target)

  • Создаём юнит типа service с названием timer:
vim /etc/systemd/system/backup.timer
    • помещаем в данный файл — следующее содержимое, где:
      • Description — описание юнита;
      • OnCalendar — представления события календаря, в данном случае подразумевается каждый день (*) каждого месяца (*) каждого года (*) в 20 часов 00 минут 00 секунд
      • Persistent — указывает запускать таймер немедленно, если был пропущен предыдущий запуск
      • Unit — указывае какой юнит следует запускать

  • Выполним команду которая запустит перезагрузку и перечитывание всех конфигурационных файлов для юнитов:
systemctl daemon-reload
  • Включаем и добавляем в автозагрузку созданные юниты: backup.service и backup.timer
systemctl enable --now backup.service
systemctl enable --now backup.timer
  • Проверяем статус юнитов:

  • Также при запуске в директории /var/bac — должен появится бэкап: