> 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/ua/administration-and-backups/the-backups-auto-upload.md).

# Автоматичне відвантаження резервних копій

{% hint style="danger" %}

### Дані застаріли

**База знань переїхала →** [**https://wiki.spacecore.pro/**](https://wiki.spacecore.pro/)

Ця вікі більше не оновлюється. Актуальні інструкції та статті — за новою адресою.
{% endhint %}

{% content-ref url="<https://wiki.spacecore.pro/>" %}
<https://wiki.spacecore.pro/>
{% endcontent-ref %}

***

Багато користувачів думають про створення регулярних резервних копій своїх даних, і це чудово! Але як автоматизувати резервне копіювання?

У цій статті ми будемо працювати з сервісом \*Зовнішній FTP-репозиторій

## Активація FTP-сховища

Ця послуга доступна у відповідному розділі Billing. Виберіть «Динамічний тариф».

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

Ми вказуємо необхідну кількість пам’яті сховища (до 3,5 Тб), наприклад, 50 Гб, після чого додаємо тариф у кошик і оплачуємо.

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

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

<figure><img src="/files/7vQkPnvhCz5yOe6cN1Gb" alt=""><figcaption></figcaption></figure>

Ми можемо отримати дані для роботи з нею, вибравши послугу та натиснувши кнопку «Інструкції».

У окремому вікні ви побачите вкладку з усіма необхідними даними для роботи.

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

## Тестове відвантаження lftp

Нам знадобиться lftp. Встановлення утиліти на Debian/Ubuntu здійснюється за допомогою команди

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

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

Чудово! Спробуємо завантажити тестовий файл, але спершу створимо його за допомогою команди touch.

<figure><img src="/files/2eE5N4fJkEI3dOyac3TY" alt=""><figcaption></figcaption></figure>

Так. Введіть команду для завантаження файлу:

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

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

Але залишається питання: «Як автоматизувати цей процес?».

По-перше, створіть скрипт, який виконає всі необхідні дії за нас. Створіть файл і відкрийте редактор за допомогою команди

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

/backups — новий каталог для зберігання завантаженого файлу в репозиторії (який має бути створений на FTP-сервері).

backup.tar.gz — нове ім'я файлу для відвантаження завчасно.

За бажанням, перед завантаженням файлу ви можете додати команди для архівації тих важливих даних, які потрібно зберегти на віддаленому сервері.
{% endhint %}

Ми зберігаємо наш скрипт за допомогою комбінації Ctrl + X -> y.

Тепер ми намагаємося відвантажити файл за допомогою Shell скрипту (у нашому випадку, архів вказано для відвантаження backup.tar.gz, тому спершу створимо його). Потім використовуємо наш скрипт.

```
sh backup.sh
```

Відвантаження розпочато. Очікуємо завершення процесу.

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

Скрипт працює! Наш архів даних успішно завантажено на віддалений FTP-сервер.

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

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

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

Більше інформації про роботу з CRON можна знайти у вигляді публічних статей на різних веб-сайтах.

Використовуйте команду для відкриття конфігурації CRON.

```
crontab -e
```

Готово. Наразі він порожній. У вигляді коментарів, інформація від розробників щодо налаштування автоматизації.

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

{% hint style="info" %}
Хвилина Година День Місяць Гроші Тиждень /Шлях/До/Файлу
{% endhint %}

Додайте цей рядок для встановлення регулярного запуску нашого скрипта для завантаження щодня о 00:00 за серверним часом.

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

{% hint style="info" %}
Де /root/backup.sh — це шлях до виконуваного файлу.
{% endhint %}

Чудова робота! Ми створили власний скрипт для завантаження резервної копії, а також навчилися автоматизувати це завдання за допомогою CRON.
