Гайды

Резервное копирование на FTP в Linux

Сегодня я у мамы сисадмин. Кароче, есть у нас ряд серверов без каких-либо панелей управления и резервное копирование на них выполнялось «лишь бы как» – где-то локально, где-то никак, где-то через сторонние утилиты. Я решил навести порядок и накидал небольшой скрипт под это дело.

Кидаю сюда, чтобы самому не потерять, но и вы тоже можете воспользоваться

Для настройки резервного копирования с выгрузкой по FTP создаем в корне директорию backup, а в ней фал – backup.sh

Открываем файл backup.sh любым редактором и размещаем в нём следующий код:

curl ftp://USER:PASSWORD@IP/backup/$(date +"%Y-%m-%d")/ --ftp-create-dirs;
zip -r /backup/www.zip /var/www/app/*;
curl -T /backup/www.zip ftp://USER:PASSWORD@IP/backup/$(date +"%Y-%m-%d")/;
rm /backup/www.zip;
mysqldump -uUSER -pPASSWORD DATABASE > /backup/app.sql;
curl -T /backup/app.sql ftp://USER:PASSWORD@IP/backup/r-pr/$(date +"%Y-%m-%d")/;
rm /backup/app.sql

cURL – крайне удобный инструмент, в том числе при работе с FTP. В строчках с curl необходимо заменить USER, PASSWORD, IP на ip-адрес FTP-сервера, логин и пароль к нему, соответственно.

В строке с mysqldump необходимо заменить USER, PASSWORD, DATABASE на логин, пароль и название БД для экспорта.

По завершению правки скрипта, убедимся, что на сервере установлено всё необходимое ПО для работы скрипта:

apt update && apt install zip && apt install curl

Теперь запустим планировщик заданий:

crontab -e

И добавим строчку:

@daily /backup/backup.sh

Готово. Теперь, резервное копирование будет выполняться ежедневно, сохранять zip-архив файлов, а также SQL-дамп БД и выгружать всё это на FTP-сервер в директорию с текущей датой: /backup/ГГГГ-ММ-ДД/

По желанию, можно архивировать и SQL-дамп, использовать другие архиваторы (например, tgz) или использовать инкрементальные бэкапы с помощью rcync.

Может заинтересовать

Популярное