> For the complete documentation index, see [llms.txt](https://spacecore.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://spacecore.gitbook.io/wiki/administration-and-backups/the-backups-auto-upload.md).

# Авто-отгрузка бекапов

В данной статье мы будем работать с услугой «‎Внешнее FTP-хранилище».&#x20;

## Активация FTP-хранилища

Эта услуга доступна в соответствующем разделе [Биллинг](https://billing.spacecore.pro/)[а](https://billing.spacecore.pro/). Выберем «Динамический тариф».

<figure><img src="/files/BhI1468lpyDEzs1FOw3d" alt=""><figcaption></figcaption></figure>

Указываем необходимое количество памяти хранилища (до **3,5Тб**), например, **50Гб**, после чего добавляем тариф в корзину и оплачиваем.

<figure><img src="/files/thhkj2GawKxwE9O4dFp9" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/wqYiXhQA9FUH2TWT0BXQ" alt=""><figcaption></figcaption></figure>

Получить данные для работы с ней мы можем, выбрав услугу и нажав на кнопку «Инструкция».

В отдельном окне откроется вкладка со всеми необходимыми для работы данными.

![](/files/MaBfBuWZz8I806ILaAmP)

## Тестовая отгрузка lftp

Теперь перейдем к нашему основному серверу, с которого будет происходить загрузка файлов в **FTP-хранилище**. Нам пригодится статья «[Работа с FTP-хранилищем](/wiki/administration-and-backups/how-to-use-backup-storage.md)».&#x20;

Нам понадобится **lftp**. Установка утилиты на **Debian/Ubuntu** производится командой

```
sudo apt-get -y install lftp
```

![](/files/nH8BsB4WQLR8yQp6R2r1)

Отлично! Попробуем отгрузить тестовый файл, но преждевременно создадим его при помощи команды **touch**.

![](/files/tngcRuwznMHK8SYWtLiV)

Есть. Введем команду для отгрузки файла:

```
lftp ftp://login:pass@backup.s1.fsn.spacecore.pro:21 -e "set ftp:ssl-allow no; put -O / file; quit"
```

{% hint style="info" %}
**login** — имя пользователя хранилища.

**pass** — пароль от хранилища.

**backup.s1.fsn.spacecore.pro** — сервер отгрузки (не нужно изменять).

**/** — директория, куда будет загружен файл в хранилище.

**file** — имя файла, который необходимо отгрузить.
{% endhint %}

Для нашей услуги будет актуальна данная команда, вводим.

```
lftp ftp://spacecore35176:KDAcfR4p1tyz@backup.s1.fsn.spacecore.pro:21 -e "set ftp:ssl-allow no; put -O / spacecore; quit"
```

После ввода происходит подключение к удаленному серверу, а также отгрузка файла (время отгрузки колеблется в зависимости от размера передаваемого файла и скорости сети). По окончании процесса мы можем увидеть наш файл, подключившись к хранилищу через **FTP**.

![](/files/xTwnS88O4JbFh0p1A5fG)

Но все еще остается актуальным вопрос: «**Как можно автоматизировать этот процесс?**».

Для начала создадим скрипт, который при запуске будет выполнять все необходимые для нас действия. Создадим файл и откроем редактор при помощи команды

```
nano backup.sh
```

{% hint style="info" %}
Где **backup.sh** — название файла
{% endhint %}

Создадим короткий скрипт с нашей командой для отгрузки.

```
#!/bin/bash
lftp ftp://spacecore35176:KDAcfR4p1tyz@backup.s1.fsn.spacecore.pro:21 -e "set ftp:ssl-allow no; put -O /backups backup.tar.gz; quit"
```

{% hint style="info" %}
Где **#!/bin/bash** — необходимая строка, указывающая, что перед нами именно shell-скрипт.

**/backups** — новая директория для хранения отгруженного файла в хранилище (которую необходимо создать на самом **FTP-сервере**).

**backup.tar.gz** — преждевременно новое имя файла для отгрузки.

По желанию перед отгрузкой файла можно добавить команды архивации тех важных данных, которые необходимо сохранить на удаленном сервере.
{% endhint %}

Сохраняем файл наш скрипт при помощи сочетания **Ctrl + X** **->** **y.** &#x20;

Теперь пробуем отгрузить файл при помощи **Shell-скрипта** (в нашем случае для отгрузки указан архив backup.tar.gz, поэтому сначала создадим его). Затем используем наш скрипт.

```
sh backup.sh
```

Отгрузка началась. Ожидаем завершения процесса.

![](/files/xt0WcsBab9e3SlVxSncQ)

Скрипт работает! Наш архив с данными успешно отгружен на удаленный FTP-сервер.

![](/files/Q8mtfnmulFOp4G5VNbJI)

![](/files/JIFjdp6MK8JmZZwBY1em)

## Автоматизация через CRONTAB

Более подробную информацию о работе с **CRON** Вы сможете найти в виде публичных статей на различных веб-сайтах.

Воспользуемся командой для открытия конфига **CRON**.

```
crontab -e
```

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

![](/files/C8Si5JVdM123EcuRAZlI)

{% hint style="info" %}
**Минута Час День Месяц День\_недели /путь/к/файлу**
{% endhint %}

Добавим данную строку, чтобы установить регулярный запуск нашего скрипта отгрузки каждый день в 00:00 по времени сервера.

```
0 0 * * * /root/backup.sh
```

{% hint style="info" %}
Где **/root/backup.sh** — путь до исполняемого файла.
{% endhint %}

Отличная работа! Мы создали собственный скрипт для отгрузки бекап-файла, а также научились автоматизировать данную задачу через **CRON**.
