Настройка автоматизированного создания и выгрузки backup'ов
Описание
Для автоматизированного создания и выгрузки backup'ов существует специальный сервис ecss-backup.service. Он позволяет каждый день в указанное время автоматически бекапы системы с указанными параметрами, а так же передавать эти backup файлы на указанный хост по средствам протокола ssh.
Настройки сервиса
Настройка сервиса производится через конфигурационный файлы по пути /etc/ecss/ecss-backup.conf, в свою очередь для настройки расписание работы сервиса используется таймер ecss-backup.timer.
Для создания backup требуется выполнение одного из условий:
- указать в конфигурации (ecss-backup.conf) пароль для доступа к mysql;
- чтобы у root-а был разрешён доступ в mysql без пароля.
Для выгрузки backup на удаленную машину требуется выполнение одного из условий:
- чтобы был настроен доступ до удаленного хоста без ввода пароля (по ключу из под root пользователя);
- указать в конфигурации (ecss-backup.conf) пароль для доступа к удаленной машине по ssh (небезопасный способ).
При выгрузке backup на удаленную машину, по указанному пути создается директория с именем сервера откуда забирается backup (на которой выполняется скрипт) и уже в эту директорию записывается файл backup.
ecss-backup.conf
Файл конфигурации сервиса автоматического создания backup находится по пути /etc/ecss/ecss-backup.conf.
Параметры:
BACKUP_OPTIONS — строка в которой указываются дополнительные опции для команды ecss-contorl stash. Для создания backup используется встроенная утилита ecss-control. В качестве дополнительных параметров могут быть указаны ключи, чтобы в backup не сохранялись логи системы или базы данных mysql.
BACKUP_OPTIONS="--no-log"
MYSQL_PASSWORD — строка в которой указывается пароль для доступа в базу данных MySQL. Если для пользователя root разрешен доступ без пароля, то параметр можно оставить не заданным.
MYSQL_PASSWORD=""
LOCAL_BACKUP — строка в которой указывается путь для записи backup архивов на локальном сервере.
LOCAL_BACKUP="/var/cache/ecss/backups/"
REMOTE_BACKUP — параметры доступа для записи backup на удаленном сервере. Первым параметром указываются пользователь и имя хоста (ip адрес) удаленного сервера ["userBackup@serverBackup"]. После символа '=' идет строка в которой указывается путь для копирования backup архивов на удаленном сервере. Если необходимо сохранять backup на несколько серверов, то параметр REMOTE_BACKUP можно дублировать, однако при этом необходимо иметь доступ до серверов по ключам.
REMOTE_BACKUP["<userBackup@serverBackup>"]="</path/to/store/>"
SSH_PASSWORD — строка в который указывается пароль для доступа на удаленный сервер по ssh.
Если к серверу настроен доступ по ключу, то указывать пароль нельзя.
Безопасный и рекомендуемый вариант доступа по ssh — использование ключей.
SSH_PASSWORD="PasWjqv91_1$%sa!"
ecss-backup.timer
Таймер для сервиса автоматического backup. Для корректной работы таймера необходимо настроить время запуска сервиса.
sudo systemctl edit ecss-backup.timer
Для более подробной информации по конфигурации таймеров необходимо ознакомиться с документацией systremd timer.
Пример:
Таймер при котором backup будет создаваться один раз в неделю (в 12:00 в понедельник)
[Unit]
Description=Run backup weekly
[Timer]
OnCalendar=weekly
Persistent=true
Для указания более точного времени в строке OnCalendar задается необходимое время в следующем формате:
ДеньНедели Год-Месяц-День Часы:Минуты:Секунды
Символ * используется для указания всех значений, а две запятые .. для перечисления возможных значений.
Backup будет запускаться в первые три дня каждого месяца в полночь, но только если день является понедельником или вторником:
[Timer]
OnCalendar=Mon,Tue *-*-01..03 23:59:00
Запуск сервиса
Для того чтобы убедиться в корректности работы сервиса, а так же сделать backup текущей системы, необходимо выполнить команду:
sudo systemctl start ecss-backup.service
По пути указанном в параметре LOCAL_BACKUP должен создаться backup архив. Если были указаны параметры удаленного сервера, то туда так же должен был быть отправлен backup архив. Если после выполнения команды backup архивы были созданы, то сервис был сконфигурирован корректно.
Для того чтобы активировать таймер, необходимо выполнить команду:
sudo systemctl start ecss-backup.timer
После старта таймера выполните команду для проверки статуса сервиса:
sudo systemctl status ecss-backup.timer
● ecss-backup.timer - Run backup weekly
Loaded: loaded (/lib/systemd/system/ecss-backup.timer; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/ecss-backup.timer.d
└─override.conf
Active: active (waiting) since Thu 2020-01-09 12:58:08 +07; 1min 7s ago
Trigger: Fri 2020-01-10 01:15:00 +07; 12h left
янв 09 12:58:08 ecss2 systemd[1]: Started Run backup weekly.