Содержание

Резервные копии в облачном хранилище Dropbox из консоли Linux, BSD

Облачный сервис Dropbox безусловно открывает все свои возможности при совместной групповой работе. Dropbox позволяет не использовать VPN для защиты данных и отказаться от FTP серверов. Dropbox шифрует сетевой трафик с помощью протокола SSL/TLS и использует 256-битное AES-шифрование для хранения и защиты ваших данных от угроз информационной безопасности.

В этом руководстве упор сделан на повседневное использование бесплатного тарифа Dropbox Basic или тарифа Plus для одного пользователя, в таких средах как GNU Linux, FreeBSD 8.3/10.0, MacOSX, Windows/Cygwin, Raspberry Pi, QNAP, iOS, OpenWRT, Chrome OS, OpenBSD, Termux.

Достоинства Dropbox:

Примеры использования синхронизации Dropbox

Что можно синхронизировать в Dropbox, вариантов множество от загрузки проектов в продекшн, до скачивания торрентов

Шаг 1: Начало работы c Dropbox

  1. Заходим на сайт по ссылке для бесплатного тарифа Dropbox Basic, это позволит вам получить дополнительные бесплатный 500 МБ дискового пространства.
  2. Устанавливаем программное обеспечение.
  3. При первом запуске предлагается регистрация и создание рабочей области — соглашаемся, создаем аккаунт. У нас появляется локальная корневая папка Dropbox.
  4. В любом файловом навигаторе (Проводник, Total Comander) копируем файлы для публикации, передачи или совместной работы. Структура папок в интернет полностью повторяет локальную
  5. Устанавливаем дополнительные свойства папок, если требуется. Есть возможность предоставлять совместный доступ другим пользователям (на папки, не на отдельные файлы). В контекстном меню файлового навигатора появляется пункт Dropbox, включающий список дополнительных действий с папками и файлами
  6. При необходимости. Устанавливаем Dropbox на другом компьютере, указываем существующий аккаунт и получаем актуальную копию рабочей области. Синхронизация происходит автоматически

Шаг 2: Постановка задачи

Зачастую владельцы или веб-разработчики какого-либо ресурса, не задумываются, что при нехватке места на виртуальной машине или контейнере, можно воспользоваться облачными хранилищами. Я для бэкапов выбрал Dropbox из-за удобства настройки. Подобное можно сделать в таких сервисах как Google Диск, Microsoft OneDrive или Яндекс.Диск, но там есть свои нюансы и на мой взгляд подключение более сложное и написание скриптов не прозрачно, особенно в Google Диск.

Если используется панель управления хостингом, например ISPManager, Hestia, тогда функции резервного копирования могут быть реализованы средствами самой панели. В этом мануале рассмотрим случай, когда панель на сервере не используется или по каким-то причинам резервные копии необходимо делать другим способом. В нашем примере мы реализуем следующую схему — создание резервных копий каталогов с вебсайтами, баз данных и их загрузка на сервис Dropbox.

Я рекомендую создать отдельный аккаунт Dropbox для хранения резервных копий.

Шаг 3: Установка Dropbox на компьютер без монитора через командную строку

На Шаг 1 вы зарегистрировали аккаунт Dropbox.

Шаг 3.1: Установка и настройка официального клиента Dropbox

Теперь загрузим и установим официальный клиент dropbox на наш сервер Linux. Для написания руководства используется Ubuntu 22.04 LTS Jammy, но вы можете использовать CentOS и у вас не возникнет проблем.

Значит, чтобы установить официальный клиент, в терминале Linux запустите команду.

32-бит:

cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -

64-бит:

wget -O - "http://www.dropbox.com/download/?plat=lnx.x86_64" | tar xvzf - -C /root

После выполнения этой команды система создаст новую скрытую папку под названием .dropbox-dist, в моем случае /root/.dropbox-dist.

После этого запустите демон Dropbox из вновь созданной папки .dropbox-dist.

~/.dropbox-dist/dropboxd

Вам выведет сообщение: Этот компьютер не подсоединен к аккаунту Dropbox, Чтобы подсоединить этот компьютер, перейдите по ссылке. Скопируйте указанную ссылку в буфер и откройте ее в броузере. При необходимости — авторизуйтесь на сайте Dropbox. Сразу после этого скрипт сообщит Вам об успешной привязке сервера к вашему dropbox-аккаунту.

Нажмем Ctrl-C и приступим к настройке клиента Dropbox. Для начала обеспечим запуск dropboxd при загрузке системы. Это сделать проще всего с помощью планировщика — запустим crontab -uroot -e и вставим сточку:

@reboot $HOME/.dropbox-dist/dropboxd

После этого с помощью символьной ссылки укажем клиенту dropbox расположение файлов с резервными копиями:

ln -s /var/backup-manager /root/Dropbox/backup

На этом настройка окончена. Перезагрузим сервер, dropbox-клиент автоматически запуститься.

На этом настройка нашей системы резервного копирования завершена. Буквально через несколько минут в облачное хранилище будут загружены резервные копии наших данных и к ним в любой момент можно будет получить доступ.

Заключение: Разработчики официального клиента Dropbox хотели как лучше, но получилось как всегда! FIXME Думаю на десктоп системах он работает хорошо, но как для серверной версии слишком много требует зависимостей и танцев с бубном.

Шаг 3.2: (Рекомендую!) BASH клиент Dropbox Uploader и API Dropbox

Но это же Linux и значит всегда есть альтернатива. Рекомендую для работы с сервисом Dropbox использовать bash клиента andreafabrizi/Dropbox-Uploader и API Dropbox.

Если вам нужно получить доступ к Dropbox с вашего сервера или с небольшого устройства, такого как Raspberry Pi, которое не позволяет вам установить клиент Dropbox, лучшим решением будет возможность управлять своей учетной записью Dropbox прямо с терминала.

Dropbox Uploader - это сценарий BASH, который можно использовать для загрузки, скачивания, вывода списка или удаления файлов из Dropbox. Он хорош тем, что не требует ввода имени пользователя и пароля Dropbox. Он использует API Dropbox для подключения к вашей учетной записи Dropbox, чтобы вы могли передавать файлы, не беспокоясь об утечке пароля.

Для работы Dropbox Uploader необходим только Bash. Скачиваем, задаем права для запуска:

curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
 
chmod +x dropbox_uploader.sh
mv dropbox_uploader.sh /usr/local/bin/dropbox_uploader

При первом запуске dropbox_uploader будет запущен мастер, чтобы настроить доступ к вашему Dropbox. Эта конфигурация будет храниться в ~/.dropbox_uploader. Мастер настройки понятен и не вызывает вопросов:

  1. Перейдите на сайт разработчика Dropbox и создайте приложение.
  2. Задайте нужны права
  3. Вернувшись в терминал, введите ключ и секрет приложения.
  4. Перейдите по ссылке авторизации Dropbox, чтобы предоставить Dropbox Uploader разрешение на доступ к вашей учетной записи Dropbox.

Выполнив 3 этих шага вы сможете управлять своим Dropbox в терминале при помощи Dropbox Uploader.

Шаг 4: Использование BASH клиент Dropbox Uploader

С Dropbox Uploader можно использовать 10 команд:

dropbox_uploader list
 > Listing "/"... DONE
 [D]  2022_06_21
 dropbox_uploader space
Quota:  2304 Mb
Used:   517 Mb
Free:   1786 Mb

Примеры запуска скрипта Dropbox Uploader:

dropbox_uploader upload /filepath/to/file-or-folder /filepath/in/dropbox

Если "путь к файлу / в / dropbox" опущен, файл(ы) будут загружены на самый верхний уровень вашей учетной записи Dropbox.

dropbox_uploader list /filepath/to/folder/in/Dropbox
dropbox_uploader share /filepath/to/file/in/Dropbox
 ./dropbox_uploader.sh upload /etc/passwd /myfiles/passwd.old
 ./dropbox_uploader.sh upload *.zip /
 ./dropbox_uploader.sh -x .git upload ./project /
 ./dropbox_uploader.sh download /backup.zip
 ./dropbox_uploader.sh delete /backup.zip
 ./dropbox_uploader.sh mkdir /myDir/
 ./dropbox_uploader.sh upload "My File.txt" "My File 2.txt"
 ./dropbox_uploader.sh share "My File.txt"

Заключение

Dropbox Uploader предоставляет удобный способ получить доступ к своей учетной записи Dropbox и управлять ею прямо из консоли. В сочетании с простым сценарием резервного копирования и заданием cron вы можете легко автоматизировать резервное копирование сервера в Dropbox.

FAQ 1: Как очищать историю изменений в Dropbox?

Удалить файл (как вариант перенести в другую папку), потом через Web interface включив режим отображения удалённых файлов, в меню файла выбрать Purge.