Администраторы и модераторы: не стесняйтесь переместить эту тему в другое место или отредактировать её, если это необходимо.
Ниже приведены подробные пошаговые инструкции по установке rclone и настройке резервного копирования моего форума Discourse в Dropbox. Для пользователей Google Drive, полагаю, большинство этих шагов также подойдут.
Я следовал некоторым инструкциям, изначально предоставленным Кристофом (@tophee) здесь:
Поскольку я совсем не эксперт, они показались мне очень ограниченными, и в итоге я бы потерпел неудачу, поэтому я обратился за помощью к ChatGPT, и теперь всё работает! Я задокументировал каждый шаг для тех из вас, кто, вероятно, не является продвинутым пользователем, как я, и нуждается в дополнительной помощи по пути.
Удалённая установка 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>
…
Стоп!
Локальная установка 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.
Закройте это окно.
Завершение настройки 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, чтобы подтвердить работоспособность подключения.
Резервное копирование
Вручную
Для ручного резервного копирования, предполагая, что у вас типичная настройка (не настройка с двумя контейнерами), выполните:
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 на вашем компьютере, чтобы избежать путаницы в дальнейшем.
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.