# Резервное копирование

# Резервное копирование — обзор

## Назначение

Система поддерживает создание резервной копии всей системы и данных штатными средствами — без участия гипервизора.

## Что копируется

- Система Мониторинга (включая переменные и базы данных)
- Система ПринтМенеджера (включая переменные и базы данных)
- Сетевой агент мониторинга (включая его конфигурацию)
- Установочные пакеты

**Не копируется:** Локальный агент.

## Требования

- Восстановление выполняется только на чистый сервер.
- IP-адрес или доменное имя сервера должны совпадать с адресом на момент создания копии.
- Операционная система не должна меняться.
- Для создания копии: свободное место ≥ размер папки `/opt`.
- Для восстановления: свободное место ≥ размер архива.

## Важно

Во время создания резервной копии система будет выключена. Время операции зависит от размера бекапа и производительности сервера.

# Резервное копирование и восстановление данных

## Описание

В Мониторинге и ПринтМенеджере есть функционал создания бэкапа всей системы и ее данных, позволяющий сохранить рабочее состояние при использовании внутренних инструментов, без участия гипервизора.

### Требования к процессу копирования и восстановления

- Восстанавливать резервную копию нужно на чистый сервер, требования к которому описаны в документе [технических требований к инфраструктуре.](https://drive.google.com/file/d/18uiNpfpEInt6VUgLUBQFvT-KQWGuJR4D/view)
- IP-адрес или доменное имя сервера (FQDN) должны совпадать с тем, которое было на момент создания копии.
- Операционная система не должна меняться.
- Для создания копии объем свободного места на жестком диске должен равняться размеру папки `/opt`
- Для восстановления копии объем свободного места на жестком диске должен быть не менее размера архива с копией.

### Создание резервных копий

Для запуска процесса создания резервной копии введите в терминале сервера команды, указанные ниже.

Если на сервере установлена система Мониторинга или сразу оба продукта, Мониторинг и Принтеменджер, используйте команду:

```
sudo /opt/printum/backup.sh /home/user/backup  
```

Где `/home/user/backup/` — это абсолютный путь до файла с резервной копией. 

Если на сервере установлен только ПринтМенеджер, используйте команду:

```
sudo /opt/printmanager/backup.sh  /home/user/backup
```

Резервная копия будет создана для всех установленных продуктов. При резервном копировании создаются копии следующих элементов конфигурации:
- Система Мониторинга (включая значения переменных и базы данных).
- Система ПринтМененджера (включая значения переменных и базы данных).
- Сетевой агент мониторинга (включая его конфигурацию).
- Установочные пакеты 

**ВАЖНО:** Время создания резервных копий может быть продолжительным (зависит от размера бекапа, скорости работы процессора и диска), система в это время будет выключена. 

После успешного завершения резервного копирования в терминале будет выведена надпись:

```
Backup completed. Archives save in /home/user/backup/printum-backup-date-month-day-hour-minute.tar.gz
```

где 
- `/home/user/backup/` –  расположение файла с резервной копией, 
- `printum-backup-date-month-day-hour-minute.tar.gz` – название файла с резервной копией, время в название файла соответствует времени начала бекапа.

Переместите этот файл во внешнее хранилище любым доступным способом, например через scp.

### Восстановление резервных копий

Убедитесь, что на жестком диске сервера достаточно места для сохранения резервной копии. Переместите сохраненный на прошлом шаге файл на чистый сервер в любую папку. 

Для запуска процесса восстановления разархивируйте архив и запустите в нем команды:

```
sudo tar xzvf printum_backup_date-month-day_hour-minute.tar.gz
sudo printum_backup_date-month-day_hour-minute/restore.sh
```

где  
- `printum_backup_date-month-day_hour-minute.tar.gz` – название архива,
- `printum_backup_date-month-day_hour-minute` – название распакованной директории из архива.

При успешном завершении восстановления будет выведена надпись:

```
Restoration complete
```

Восстановление завершено. Подождите несколько минут для запуска системы. Убедитесь, что восстановление прошло успешно, например: проверьте корректность отображения данных принтеров в ЛК, загрузку страниц панелей администратора Мониторинга и ПринтМенеджера, печать, копирование и сканирование документов.

После подтверждения работоспособности системы удалите архив и распакованную папку для экономии места:

```
sudo rm -f printum_backup_date-month-day_hour-minute.tar.gz
sudo rm -fr printum_backup_date-month-day_hour-minute
```

# Резервное копирование при шифровании конфигурационного файла

## Описание

При включённом шифровании `.env`-файла резервная копия должна создаваться с явным указанием пароля шифрования. Без него копия может быть создана некорректно.

## Шаги

### Мониторинг

```
sudo -E ENV_VAULT_PASSWORD=<password> /opt/printum/backup.sh /home/user/backup
```

### ПринтМенеджер

```
sudo -E ENV_VAULT_PASSWORD=<password> /opt/printmanager/backup.sh /home/user/backup
```

Где `<password>` — действующий пароль шифрования, использованный при установке продукта.

## Важно

Отсутствие переменной `ENV_VAULT_PASSWORD` при зашифрованном конфиге приводит к некорректному созданию резервной копии.

# Резервное копирование Мониторинга

## Назначение

Резервная копия сервера Мониторинга охватывает все установленные продукты: Мониторинг и ПринтМенеджер (если оба развёрнуты на одном сервере). Используется скрипт `/opt/printum/backup.sh`.

---

## Требования

- Объём свободного места на диске должен быть не менее размера папки `/opt`.
- IP-адрес или доменное имя сервера должны совпадать с теми, что были на момент создания копии — это требуется при последующем восстановлении.
- Операционная система не должна меняться.

---

## Создание резервной копии

Выполните в терминале сервера:

```
sudo /opt/printum/backup.sh /home/user/backup
```

Где `/home/user/backup` — абсолютный путь до директории, в которую будет сохранён архив. Измените путь на актуальный для вашего сервера.

Данная команда применяется, если на сервере установлен Мониторинг или одновременно Мониторинг и ПринтМенеджер.

---

## Ход выполнения

Время создания резервной копии зависит от размера данных, скорости процессора и диска. В процессе создания копии система будет выключена.

---

## Результат

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

```
Backup completed. Archives save in /home/user/backup/printum-backup-date-month-day-hour-minute.tar.gz
```

Время в названии файла соответствует времени начала резервного копирования.

---

## После создания копии

Переместите архив во внешнее хранилище, например через `scp`:

```
scp /home/user/backup/printum-backup-*.tar.gz user@backup-server:/backups/
```

# Резервное копирование ПринтМенеджера

## Назначение

Резервная копия сервера, на котором установлен только ПринтМенеджер (без Мониторинга). Используется скрипт `/opt/printmanager/backup.sh`.

---

## Требования

- Объём свободного места на диске должен быть не менее размера папки `/opt`.
- IP-адрес или доменное имя сервера должны совпадать с теми, что были на момент создания копии — это требуется при последующем восстановлении.
- Операционная система не должна меняться.

---

## Создание резервной копии

Выполните в терминале сервера:

```
sudo /opt/printmanager/backup.sh /home/user/backup
```

Где `/home/user/backup` — абсолютный путь до директории, в которую будет сохранён архив. Измените путь на актуальный для вашего сервера.

Данная команда применяется, если на сервере установлен **только ПринтМенеджер** без Мониторинга. Если оба продукта установлены на одном сервере — используйте команду из страницы «Резервное копирование Мониторинга».

---

## Ход выполнения

Время создания резервной копии зависит от размера данных, скорости процессора и диска. В процессе создания копии система будет выключена.

---

## Результат

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

```
Backup completed. Archives save in /home/user/backup/printum-backup-date-month-day-hour-minute.tar.gz
```

Время в названии файла соответствует времени начала резервного копирования.

---

## После создания копии

Переместите архив во внешнее хранилище, например через `scp`:

```
scp /home/user/backup/printum-backup-*.tar.gz user@backup-server:/backups/
```