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

## Как переместить пользователя на новый сервер?

Текущая функция восстановления принимает резервные копии, созданные как VestaCP
и HestiaCP.

1. Создайте резервную копию пользователя на старом сервере.

```bash
v-backup-user имя пользователя
```

2. Скопируйте сгенерированный tarball на новый сервер и поместите его в `/backup`.

```bash
scp /backup/имя пользователя.2020.01.01-00-00.tar root@host.domain.tld:/backup/
```

3. Восстановите резервную копию на новом сервере. Вы можете выполнить восстановление для другого пользователя, изменив имя пользователя в команде.

```bash
v-restore-user имя пользователя имя пользователя.2020.01.01-00-00.tar
```

Будут созданы учетные записи пользователей, которые не существуют.

## Какие типы резервных копий можно восстановить?

В настоящее время HestiaCP поддерживает восстановление только резервных копий, созданных с помощью:

1. HestiaCP
2. VestaCP

## Как изменить количество резервных копий?

Чтобы изменить количество резервных копий, прочтите документацию [Пакеты](../user-guide/packages.md) и [Пользователи](../user-guide/users.md). Вам нужно будет создать или изменить пакет и назначить его нужному пользователю.

## Недостаточно места на диске для выполнения резервного копирования

В целях безопасности Hestia учитывает двукратное использование диска пользователем при создании резервной копии. Поэтому перед началом резервного копирования мы проверяем, сколько дискового пространства осталось у пользователя. Если вы столкнулись с этой ошибкой, вы можете выполнить одно из следующих действий для решения проблемы:

- Уменьшите количество резервных копий, сохраненных на одного сохраненного пользователя.
- Переместите резервные копии в удаленное хранилище.
- Переместите папку резервных копий на другой диск.
- Разделите пользователя на несколько пользователей.
- Исключите определенные папки или почтовые учетные записи из резервной копии.

## В чем разница между zstd и gzip

zstd был разработан Facebook в качестве замены gzip. Во время нашего тестирования мы обнаружили значительное увеличение скорости и меньшее использование дискового пространства по сравнению с gzip.

Для получения дополнительной информации см. [репозиторий zstd](https://github.com/facebook/zstd).

## Какова оптимальная степень сжатия

Чем выше число, тем лучше степень сжатия. Во время нашего тестирования мы обнаружили, что zstd уровня 3 похож на уровень 9 по дисковому пространству, однако он намного быстрее. zstd уровня 11 занял примерно столько же времени, но дал нам меньший размер. Уровни выше 19 никогда не следует использовать, так как zstd тогда становится ужасно медленным.

## Какие протоколы поддерживаются в настоящее время

В настоящее время поддерживаются следующие протоколы резервного копирования:

- FTP
- SFTP
- Rclone, который поддерживает до 50 различных облачных провайдеров. [См. документацию](https://rclone.org)

## Как настроить сервер резервного копирования FTP

Войдите через SSH и выполните следующую команду как root:

```bash
v-add-backup-host 'ftp' 'remote.ftp-host.tld' 'backup-user' 'p4ssw0rd' '/path-backups/' 'port'
```

### Как настроить сервер резервного копирования SFTP

::: warning
Обратите внимание, что пароли хранятся на сервере в виде **обычного текста**. Они доступны только пользователю root, но если вы хотите использовать более безопасный метод аутентификации, используйте открытые и закрытые ключи.
:::

Войдите через SSH и выполните следующую команду как root:

```bash
v-add-backup-host 'sftp' 'remote.ftp-host.tld' 'backup-user' 'p4ssw0rd' '/path-backups/' 'port'
```

Если используются открытые и закрытые ключи (рекомендуется):

```bash
v-add-backup-host 'sftp' 'remote.ftp-host.tld' 'backup-user' '/root/id_rsa' '/path-backups/' 'port'
```

## Как настроить Rclone

::: tip
Первоначальную настройку можно выполнить только через CLI. После этого вы можете обновить настройки через веб-панель.
:::

Сначала [скачать Rclone](https://rclone.org/downloads/). Самый простой способ — запустить эту команду:

```bash
sudo -v
curl https://rclone.org/install.sh | sudo bash
```

После завершения загрузки и установки запустите `rclone config`, а затем `n`. Следуйте инструкциям на экране, затем сохраните после завершения.

Чтобы проверить, работает ли он, запустите, как задумано:

```bash
echo "test" > /tmp/backuptest.txt
rclone cp /tmp/backuptest.txt $HOST:$FOLDER/backuptest.txt
rclone lsf $HOST:$FOLDER
```

И увидите, что файл загружен

```bash
rclone delete $HOST:$FOLDER/backuptest.txt
```

После сохранения конфигурации вы можете настроить Hestia с помощью следующей команды:

```bash
v-add-backup-host 'rclone' 'remote-name' '' '' 'Bucket or Folder name' ''
```

::: tip
Конфигурация для каждой конечной точки может отличаться! Убедитесь, что она работает, прежде чем полагаться на нее. Чтобы проверить, работает ли это, запустите

```bash
v-backup-user admin
```

:::

Например:

```bash
rclone config

Текущие удаленные устройства:

Имя Тип
==== ====
r2 s3
```

Чтобы использовать конечную точку "R2", используйте

```bash
v-add-backup-host 'rclone' 'r2' '' '' 'folder'
```

Для Blackblaze используйте

```bash
v-add-backup-host 'rclone' 'b2' '' '' 'hestiacp'
```

## Как изменить папку резервного копирования по умолчанию

В целях безопасности символические ссылки не допускаются. Чтобы изменить папку резервного копирования по умолчанию, вы можете сделать следующее:

1. Убедитесь, что папка резервного копирования в настоящее время установлена ​​на `/backup`.

2. Если в нем что-то есть, удалите это и создайте заново. Вы можете использовать FTP-клиент или ввести `mkdir /backup` в консоли.
3. Смонтируйте нужную папку в `/backup`, используя `mount`:

```bash
mount --bind /path/to/new/backup/folder /backup
```

Для постоянного исправления следует добавить запись в `fstab`, чтобы эта папка монтировалась при загрузке системы:

1. Откройте `/etc/fstab`.
2. Добавьте следующую строку в конец:

```bash
/path/to/new/backup/folder /backup none defaults,bind 0 0
```

3. Сохраните файл.

## Как извлечь файл .zstd

Следуйте инструкциям ниже или используйте WinRAR 6.10 или более поздней версии для распаковки файлов .zst.

### Как извлечь domain_data.tar.zst в Windows с помощью zstd.exe

1. Загрузите и распакуйте zstd.exe. Он доступен на [zstd GitHub](https://github.com/facebook/zstd/releases/).

2. Чтобы распаковать резервную копию, используйте следующую команду:

```batch
{dir_to_zstd}\zstd.exe -o {dir_to_file}\{file}.tar.zst
```

Например:

```batch
C:\Users\{user}\Downloads\zstd-v1.4.4-win64\zstd.exe -d c:\Users\{user}\Downloads\admin.2021-06-27_05-48-23\web\{domain}\domain_data.tar.zst
```

Вывод:

```batch
C:\Users\{user}\Downloads\admin.2021-06-27_05-48-23\web\{domain}\domain_data.tar.zst: 61440 байт
```

3. Используйте предпочтительную программу для распаковки полученного tarball, и все готово.
В этом случае tar был выведен в:

```batch
C:\Users\{user}\Downloads\admin.2021-06-27_05-48-23\web\{domain}\domain_data.tar
```