Резервное копирование: база данных, веб-сайт, настройки сервера в dropbox папку.
Dropbox – облачный сервис для хранения и синхронизации файлов на всех ваших устройствах, где установлено приложение dropbox. На сервер, приложение устанавливать не будем, так как мы будем использовать внешнее хранилище только для загрузки в него архивной копии, а не для синхронизации. Если использовать обычную синхронизацию, есть большая вероятность переполнения диска сервера другими данными, которые могут попасть в папку с другого устройства, а так же хранилище бекапов перестает быть изолированным и есть риск удаления важной копии на сервере и в центральном хранилище. Чем будет больше файлов, тем больше будет нагрузка на диск и сетевой интерфейс.
Перед началом работы нам нужно создать приложение в нашем dropbox
Ссылка https://www.dropbox.com/developers/apps/
Выбрать:
- Dropbox Api
- App folder
Мы будем загружать архивы в определенную папку, по этому нам подойдет именно эта конфигурация приложения – см. рисунок
Скрипт для работы с Dropbox аккаунтом
https://github.com/andreafabrizi/Dropbox-Uploader
Больше информации находится по ссылке выше, так же можно загрузить только скрипт
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
После того, как будет запущен скрипт $./dropbox_uploader.sh и если это было сделано в первый раз, нам будет предложено ввести Token Key его нужно сгенерировать в настройках приложения Dropbox см. рисунок
После генерации токена и передачи его в скрипт (просто скопировать во время запуска), мы можем загружать в наш dropbox аккаунт файлы.
Нужно обратить внимание на название папки (его можно изменить), куда будут загружаться файлы
Пример рабочего скрипта, который загружает архивы или любые файлы из папки backups в папку dropbox по расписанию – cron и удаляет исходный файл.
#!/bin/sh BACKUP_FOLDER=/home/project/backups/* for f in $BACKUP_FOLDER do if [ -f $f ]; then /home/project/app/Dropbox-Uploader/dropbox_uploader.sh -qs upload $f ${f##*/} rm $f fi done
Подведем итоги
Реализована задача перемещать файлы в облачное хранилищие, а не синхронизировать удаленную папку с папкой не сервере, что не рекомендуется делать. Файлы с сервера перемещаются в облако, потом удаляются.
Нужно быть внимательным с папкой в облаке.
Скрипт перемещения файлов рекомендуется запускать под пользователем не имеющего полномочий root, что бы через скрипт не было возможности получить доступ ко всей системе.