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

Многие пользователи задумываются над созданием регулярных бекапов своих данных, и это великолепно! Но как автоматизировать процесс выгрузки резервных копий?

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

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

Эта услуга доступна в соответствующем разделе Биллинга. Выберем «Динамический тариф».

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

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

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

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

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

Теперь перейдем к нашему основному серверу, с которого будет происходить загрузка файлов в FTP-хранилище. Нам пригодится статья «Работа с FTP-хранилищем».

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

sudo apt-get -y install lftp

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

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

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

login — имя пользователя хранилища.

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

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

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

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

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

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

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

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

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

nano backup.sh

Где backup.sh — название файла

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

#!/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"

Где #!/bin/bash — необходимая строка, указывающая, что перед нами именно shell-скрипт.

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

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

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

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

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

sh backup.sh

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

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

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

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

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

crontab -e

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

Минута Час День Месяц День_недели /путь/к/файлу

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

0 0 * * * /root/backup.sh

Где /root/backup.sh — путь до исполняемого файла.

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

Last updated