Для автоматизированного создания и выгрузки backup'ов существует специальный сервис ecss-backup.service. Он позволяет каждый день в указанное время автоматически бекапы системы с указанными параметрами, а так же передавать эти backup файлы на указанный хост по средствам протокола ssh.
Настройка сервиса производится через конфигурационный файлы по пути /etc/ecss/ecss-backup.conf, в свою очередь для настройки расписание работы сервиса используется таймер ecss-backup.timer.
Для создания backup требуется выполнение одного из условий:
Для выгрузки backup на удаленную машину требуется выполнение одного из условий:
При выгрузке backup на удаленную машину, по указанному пути создается директория с именем сервера откуда забирается backup (на которой выполняется скрипт) и уже в эту директорию записывается файл backup.
Файл конфигурации сервиса автоматического создания 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 архивов на локальном сервере.
| Обратите внимание, что в разделе, где находится указанная директория должно быть достаточно дискового пространства для хранения backup файлов. Так этот сервис не решает вопрос с автоматическим удалением старых backup архивов. В качестве выхода можно использовать подсистему RestFs autocleaner. |
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!" |
Таймер для сервиса автоматического 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. |