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

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

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

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

<figure><img src="https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FrZFnsfPDbRicri5xSWhS%2Fimage.png?alt=media&#x26;token=dacc6bbe-cb5b-4933-8c6a-8e5f0296cc7b" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2Fal5YKDNeiV66pmwWl9Oh%2Fimage.png?alt=media&#x26;token=ece76655-d952-4bb1-b59d-28521b6de5a4" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FZAPTypDn4Of9K4VFYS7N%2Fimage.png?alt=media&#x26;token=6941f322-08a1-4aa8-b23e-5368239a27a1" alt=""><figcaption></figcaption></figure>

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

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

![](https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FfoaJhMkOZnpXS9riQ7G3%2Fimage.png?alt=media\&token=c0723141-4972-4592-85a8-113cbb6a6b14)

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

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

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

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

![](https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FkGv8Tk4p9eh2fY6pHIcs%2Fimage.png?alt=media\&token=5cfb769a-df9c-4dbc-8fd7-07588c113f1e)

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

![](https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FgauWTGo45JJY6A5jvwN0%2Fimage.png?alt=media\&token=e4f19bb0-fbf9-4321-bc89-5899e3ad4581)

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

```
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**.

![](https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FacHQrTJ5ph0PDgsO7FX4%2Fimage.png?alt=media\&token=f2c1aa00-7934-4432-af9d-d3080dbd8196)

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

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

```
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
```

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

![](https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FGFL6YKOi8ov75lKXmgp8%2Fimage.png?alt=media\&token=6a8f13c8-8336-4e11-b305-3f2f5c0e247c)

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

![](https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FTO8KNs8WK608IROAGauX%2Fimage.png?alt=media\&token=0adf6bc4-3b5c-4968-a268-73e952cc6826)

![](https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2FmZQEzDVkZtoqko528gxS%2Fimage.png?alt=media\&token=07d1ab55-5cec-4997-abc6-6568f2de7fc1)

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

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

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

```
crontab -e
```

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

![](https://1206415929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LXbCSSBR0J1rX84BjWO%2Fuploads%2Fven9jRFGCrcWXTkRmyrw%2Fimage.png?alt=media\&token=f7bbe49d-688b-4cd6-bbaf-d14ccb8cd1a2)

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

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

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

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

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