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

Лупа для поиска
  • Свежачок
  • Карта сайта
  • Синхронизация файлов с облачным хранилищем при помощи 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/↩︎