Цифровой сад — общедоступная персональная база знаний

Синхронизация файлов с облачным хранилищем при помощи rclone

Решим задачу организации автоматической синхронизации файлов и директорий между двумя компьютерами через облачное хранилище при помощи инструмента rclone. Будет приведён минимальный пример, который можно масштабировать на любое количество компьютеров.

Конфигурация

Я обычно использую rclone для двухсторонней и односторонней синхронизации базы знаний Obsidian.

Итак, необходимо синхронизировать содержимое следующих директорий:

  1. На двух компьютерах скачиваем и устанавливаем rclone1.

  2. На двух компьютерах создаём подключение к облачному хранилищу Mail.ru.

    rclone config
    ...
    name> username
    ...
    Storage> 29 # mailru
    ...
    user> username@mail.ru
    ...
    Password.
    ...
    Choose an alternative below.
    y) Yes, type in my own password
    g) Generate random password
    y/g> y
    Enter the password:
    password:
    ...
    speedup_enable> 1
    ...
  3. На двух компьютерах настраиваем синхронизацию раз в 2 минуты при помощи crontab -e.

    1. На 1-м настраиваем двухстороннюю синхронизацию директории folder-rw.

      */2 * * * * /usr/bin/rclone bisync --force --recover --create-empty-src-dirs --conflict-resolve=newer --conflict-loser=delete "$HOME/folder1-rw" "username:folder-cloud" --log-file="$HOME/.folder1-rw-bisync.log"

      , где

      • bisync - двухсторонняя синхронизация,
      • --force - синхронизировать, даже если удаляется или перемещается большое количество файлов,
      • --recover - автоматически восстанавливаться после сбоя,
      • --create-empty-src-dirs - синхронизировать даже пустые вложенные директории,
      • --conflict-resolve=newer --conflict-loser=delete - в случае конфликта двух файлов, оставлять самый свежий, старый удалять,
      • "$HOME/folder1-rw" - путь к директории на компьютере с которой идёт синхронизация,
      • "username:folder-cloud" - директория в облачном хранилище с которой синхронизируется директория folder1-rw,
      • --log-file="$HOME/.folder1-rw-bisync.log" - писать отладочный журнал в указанный файл.

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

    2. На 2-м настраиваем одностороннюю синхронизацию директории folder-readonly.

      */2 * * * * /usr/bin/rclone sync --create-empty-src-dirs "username:folder-cloud" "$HOME/folder-readonly"

      , где

      • sync - односторонняя синхронизация "username:folder-cloud" -> "$HOME/folder-readonly",
      • --create-empty-src-dirs - синхронизировать даже пустые вложенные директории,
      • "username:folder-cloud" - директория в облачном хранилище откуда скачиваются файлы,
      • "$HOME/folder-readonly" - директория на компьютере куда записываются файлы из облачного хранилища folder-cloud.

Примечания


  1. https://rclone.org/downloads/↩︎

  2. https://crontab.guru/↩︎

  3. https://rclone.org↩︎

  4. https://foldersync.io/↩︎