Резервные копии в облачном хранилище 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 Passwords для безопасного хранения паролей.
  • Поддерживает публикацию файлов в интернет.
  • Поддерживает автоматическое обновление данных в интернет при обновлении на локальном компьютере.
  • Поддерживает совместную работу нескольких пользователей. При изменении файлов одним пользователем, эти файлы у остальных изменяются автоматически, при этом появляется сообщение об обновлении.
  • Поддерживается контроль версий и возможность возврата к предыдущим.
  • Бесплатно предоставляются 2 ГБ пространства на тарифном плане Dropbox Basic.
  • Dropbox Vault (платная) — это функция, с помощью которой можно создать в Dropbox место с дополнительным уровнем безопасности для ваших самых важных файлов, а потом поделиться этими файлами с доверенными контактами. Такое место называется «сейф», оно располагается в вашем аккаунте Dropbox и защищается цифровым паролем или PIN-кодом. Доступа к сейфу нет ни у каких сторонних приложений.

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

  • Логи ICQ и других мессенджеров
  • Профили Firefox.
  • Можно расшарить например верстку сайта в Public и она будет отлично открываться через веб. Удобно и не требует установки веб-сервера :)
  • Удаленная загрузка torrent Dropbox. Еще одна супер интересная фишка (для меня) — удаленная загрузка торент-файлов: Создаем папку, например: «torrents» и, находясь на работе, складываем туда файлы с расширением .torrents, а на домашнем компе настраиваем µTorrent так, чтобы следил за этой папкой, и при появлении новых данных сразу их скачивал! Приходите с работы домой, а там уже скачанные файлы вас дожидаются! =) Отличный сервис!
  1. Заходим на сайт по ссылке для бесплатного тарифа Dropbox Basic, это позволит вам получить дополнительные бесплатный 500 МБ дискового пространства.
  2. Устанавливаем программное обеспечение.
  3. При первом запуске предлагается регистрация и создание рабочей области — соглашаемся, создаем аккаунт. У нас появляется локальная корневая папка Dropbox.
  4. В любом файловом навигаторе (Проводник, Total Comander) копируем файлы для публикации, передачи или совместной работы. Структура папок в интернет полностью повторяет локальную
  5. Устанавливаем дополнительные свойства папок, если требуется. Есть возможность предоставлять совместный доступ другим пользователям (на папки, не на отдельные файлы). В контекстном меню файлового навигатора появляется пункт Dropbox, включающий список дополнительных действий с папками и файлами
  6. При необходимости. Устанавливаем Dropbox на другом компьютере, указываем существующий аккаунт и получаем актуальную копию рабочей области. Синхронизация происходит автоматически

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

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

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

На Шаг 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 Думаю на десктоп системах он работает хорошо, но как для серверной версии слишком много требует зависимостей и танцев с бубном.

Но это же 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.

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

  • загрузить / upload <LOCAL_FILE/DIR …> <REMOTE_FILE/DIR>
  • скачать / download <REMOTE_FILE/DIR> [LOCAL_FILE/DIR]
  • удалить / delete
  • move - переместить или переименовать удаленный файл или каталог
  • копировать / copy
  • mkdir - создание удаленного каталог в Dropbox
  • list - cписок содержимого удаленной папки Dropbox
dropbox_uploader list
 > Listing "/"... DONE
 [D]  2022_06_21
  • monitor [REMOTE_DIR] [TIMEOUT] Следите за изменениями в удаленной папке Dropbox.
  • share <REMOTE_FILE> Получить общедоступную ссылку для указанного файла или каталога
  • saveurl <URL> <REMOTE_DIR> Загрузите файл с URL-адреса в папку Dropbox напрямую (файл НЕ загружается локально)
  • search <QUERY> Выполните поиск Dropbox и получите список соответствующих файлов или каталогов.
  • info - Вывести информацию о вашей учетной записи Dropbox
  • space - Вывести информацию об использовании места в вашей учетной записи Dropbox
 dropbox_uploader space
Quota:  2304 Mb
Used:   517 Mb
Free:   1786 Mb
  • unlink - Отвязать скрипт от вашего аккаунта Dropbox

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

  • Чтобы загрузить файл / папку, используйте синтаксис:
dropbox_uploader upload /filepath/to/file-or-folder /filepath/in/dropbox

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

  • Перечислить все файлы в папке в вашей учетной записи Dropbox
dropbox_uploader list /filepath/to/folder/in/Dropbox
  • Получить общедоступную ссылку на определенный файл в 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.

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

PQ VPS сервера в 28+ странах.