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

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

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

У цій статті ми будемо працювати з сервісом \*Зовнішній 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 — пароль до сховища.&#x20;

backup.s1.fsn.spacecore.pro — сервер відвантаження (не потрібно змінювати).&#x20;

/ — каталог, куди буде завантажено файл у репозиторії.&#x20;

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.&#x20;

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

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

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

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

Тепер ми намагаємося відвантажити файл за допомогою 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://spacecore.gitbook.io/wiki/ua/administration-and-backups/the-backups-auto-upload.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
