Используйте rclone для синхронизации с Dropbox (2025)

Администраторы и модераторы: не стесняйтесь переместить эту тему в другое место или отредактировать её, если это необходимо.

Ниже приведены подробные пошаговые инструкции по установке rclone и настройке резервного копирования моего форума Discourse в Dropbox. Для пользователей Google Drive, полагаю, большинство этих шагов также подойдут.

Я следовал некоторым инструкциям, изначально предоставленным Кристофом (@tophee) здесь:

Поскольку я совсем не эксперт, они показались мне очень ограниченными, и в итоге я бы потерпел неудачу, поэтому я обратился за помощью к ChatGPT, и теперь всё работает! Я задокументировал каждый шаг для тех из вас, кто, вероятно, не является продвинутым пользователем, как я, и нуждается в дополнительной помощи по пути.

:one: Удалённая установка rclone и подготовка к работе с Dropbox

Подключитесь к вашему серверу по SSH:

ssh root@xxx.xxx.xxx.xxx

Когда вы на сервере:

root@ServerNameHere:~#

Установите rclone:

sudo curl https://rclone.org/install.sh | sudo bash

Если установка прошла успешно, выполните:

sudo rclone config

Когда появится сообщение:

2025/08/13 11:29:31 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> 

… введите n и нажмите Enter.

Когда появится запрос:

Enter name for new remote.
name> 

Придумайте имя, например dropbox_backup. Нажмите Enter.

Вам будет показан список красным и зелёным цветом (так было у меня), и один из вариантов — Dropbox. У каждого варианта есть номер. У меня это было:

14 / Dropbox
   \ (dropbox)

Внизу, где написано Storage>, введите номер для Dropbox. В моём случае получилось Storage>14. Нажмите Enter.

Появится запрос:

Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> 

Просто нажмите Enter, чтобы оставить поле пустым. Сделайте то же самое, когда появится:

Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> 

Когда появится:

Edit advanced config?
y) Yes
n) No (default)
y/n> 

Введите n и нажмите Enter.

Когда появится:

Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.

y) Yes (default)
n) No
y/n> 

Введите n и нажмите Enter.

Когда появится:

Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
	rclone authorize "dropbox"
Then paste the result.
Enter a value.
config_token> 

:stop_sign: Стоп!

:two: Локальная установка rclone и авторизация Dropbox

Установите rclone на вашем компьютере. В моём случае я открыл новое окно Терминала на Mac, чтобы установить rclone, не прерывая предыдущий процесс, так как мне нужно будет продолжить после получения токена Dropbox.

Сначала я проверил, установлен ли он на моём Mac, выполнив:

rclone version

Он не был установлен, поэтому мне пришлось его установить. В моём конкретном случае я использовал MacPorts, так как Homebrew плохо работает с Catalina; выберите подходящий для вас вариант.

Команда для Homebrew:

brew install rclone

Команда для MacPorts:

sudo port install rclone

После установки в том же окне выполните:

rclone authorize "dropbox"

Это имя dropbox НЕ связано с именем dropbox_backup, которое мы выбрали ранее.

После запуска этой команды откроется окно авторизации в браузере.
Если оно не открылось, вставьте этот URL в адресную строку браузера: http://127.0.0.1:53682/auth (согласно этим инструкциям).

Войдите в Dropbox. Нажмите кнопку Allow. Если всё прошло успешно, вы увидите сообщение:

Success!
All done. Please go back to rclone.

Закройте это окно.

:three: Завершение настройки Dropbox

Вернитесь в Терминал, и там появится длинный токен (он будет очень длинным, я просто сократил его здесь):

{"access_token":"sl.u.AF5VJTs.................ZvNhniOToyQG","token_type":"bearer","refresh_token":"jygyhExsHRgAAAAAAAAAAfeHd8D0l5jzLvuiZ1onH2nXP2YeC2ycrbm5eQ5Y3uc6","expiry":"2025-08-13T16:58:41.072138+01:00","expires_in":14400}

Скопируйте всё от открывающей { до закрывающей }, включая сами фигурные скобки, и вставьте это в другое окно:

Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
	rclone authorize "dropbox"
Then paste the result.
Enter a value.
config_token> ВСТАВЬТЕ_ТОКЕН_ЗДЕСЬ

Нажмите Enter.

Если всё прошло успешно, вы увидите что-то вроде:

Configuration complete.
Options:
- type: dropbox
- token: {"access_token":"sl.u.AF5VJTs7..........ToyQG","token_type":"bearer","refresh_token":"jygyhExsHRgAAAAAAAAAAfeHd8D0l5jzLvuiZ1onH2nXP2YeC2ycrbm5eQ5Y3uc6","expiry":"2025-08-13T16:58:41.072138+01:00","expires_in":14400}
Keep this "dropbox_backup" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> 

Выберите y, чтобы сохранить его. Это сохранит удалённое подключение с именем dropbox_backup на вашем сервере, и вы сможете использовать его для команд rclone. Нажмите Enter.

Появится:

Current remotes:

Name                 Type
====                 ====
dropbox_backup       dropbox

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> 

Введите q, чтобы выйти из конфигурации. Ваше удалённое подключение dropbox_backup теперь готово к использованию. Нажмите Enter.

Находясь всё ещё в режиме root@, выполните rclone lsd dropbox_backup:
Это выведет список всех корневых директорий в вашем Dropbox, чтобы подтвердить работоспособность подключения.

:four: Резервное копирование

:keyboard: Вручную

Для ручного резервного копирования, предполагая, что у вас типичная настройка (не настройка с двумя контейнерами), выполните:

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ dropbox_backup:backups
  • /var/discourse/shared/standalone/backups/default → исходная папка на вашем сервере (я подтверждаю, что этот путь точен для типичной настройки — не для настройки с двумя контейнерами — по крайней мере, на август 2025 года).
  • --exclude tmp/ → пропускает временные файлы.
  • dropbox_backup:backups → имя удалённого подключения (dropbox_backup) и папка в Dropbox (backups).

Это загрузит все файлы резервных копий (кроме tmp/) в ваш Dropbox в папку с именем backups, используя выбранное ранее имя: dropbox_backup.

Если вы хотите папку с пробелами, например Discourse Backups, выполните вместо этого:

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

Если всё пойдёт по плану, вы увидите папку Discourse Backups (или выбранное вами имя) в Dropbox со всеми вашими файлами резервных копий.

Поскольку вы дошли до этого этапа, закройте второе окно Терминала, использованное для установки rclone на вашем компьютере, чтобы избежать путаницы в дальнейшем.

:alarm_clock: Cron-задача

Теперь создадим cron-задачу для автоматизации этого процесса:

crontab -e

Вам будет предложено:

no crontab for root - using an empty one
Select an editor.  To change later, run select-editor again.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 

Выберите 1. Нажмите Enter.

Вы увидите что-то вроде:

# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

В конце всего этого добавьте cron-задачу. Чтобы копировать резервные копии каждый день в 18:00, добавьте следующее:

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

Таким образом, ваш «список» закончится примерно так:

(ЗДЕСЬ ИСХОДНЫЙ ТЕКСТ)

# m h  dom mon dow   command

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

Нажмите Ctrl+X. Внизу окна появится запрос о сохранении. Нажмите Y, а затем Enter.

Готово!

Вы можете запускать cron-задачу чаще, если хотите, так как в любом случае будут копироваться только новые файлы.

Обратите внимание, что опция copy будет добавлять всё больше и больше резервных копий в ваш Dropbox, даже если те, что на сервере, будут удалены. Если вы хотите хранить только те копии, которые также хранятся на сервере, используйте sync вместо copy.

5 лайков

Спасибо, это было очень полезно. Теперь у меня rclone и Dropbox подключены. Как мне подключить Dropbox к Plex?

Иногда я задумываюсь, не следует ли в примерах из этих руководств использовать команду sync вместо copy (вспомнив Use rclone to sync backups to Dropbox or Google Drive), а команду copy упомянуть как альтернативный вариант, потому что я не понимаю, почему кто-то предпочёл бы использовать copy вместо sync, если только у него нет неограниченного места в хранилище :thinking:

Для всего, что я делаю, я предпочитаю делать несколько резервных копий на случай, если что-то пойдет не так, по крайней мере, на какое-то время. Наличие нескольких копий позволяет мне чувствовать себя спокойнее. Одна копия заставляет меня нервничать :wink: