Pull to refresh

Comments 14

Спасибо за пост, только вот подружить rclone с Yandex.Disk не пытались?

C Яндекс-диском не пытался, только с Google Drive.
В общем, подключил ЯД. Ставил на сервер. По идее, модно было сделать и без использования десктопа, но с ним в разы проще. Пошагово:

  1. Ставим rclone как указано в посте, но ничего не настраиваем;
  2. Качаем на десктоп (в моем случае это Win-машина) версию под windows
  3. Из архива берем rclone.exe и кидаем в корень c:\ (сугубо для удобства);
  4. Открываем cmd, выполняем:
    cd /d c:\
    rclone.exe config
    
    No remotes found - make a new one
    n) New remote
    s) Set configuration password
    q) Quit config
    n/s/q> n
    
    name> yandex
    
    client_id>
    
    client_secret>
    
    Remote config
    Use auto config?
     * Say Y if not sure
     * Say N if you are working on a remote or headless machine
    y) Yes
    n) No
    y/n> y
    
    # Открывается окно браузера, в котором вводим логин:пароль от учетки ЯД
    
    Waiting for code...
    Got code
    --------------------
    [yandex]
    client_id =
    client_secret =
    token = {"access_token":"AQA...OuQ","token_type":"bearer","expiry":"2017-07-13T18:27:46.7501402+05:00"}
    --------------------
    y) Yes this is OK
    e) Edit this remote
    d) Delete this remote
    y/e/d> y
    
    Current remotes:
    Name                 Type
    ====                 ====
    yandex               yandex
    e) Edit existing remote
    n) New remote
    d) Delete remote
    s) Set configuration password
    q) Quit config
    e/n/d/s/q> q
    
    rclone.exe --help
    
    # Смотрим строку --config string  Config file. (default "C:\\Users\\USERNAME/.rclone.conf")
    
    type C:\Users\USERNAME\.rclone.conf
    
    [yandex]
    type = yandex
    client_id =
    client_secret =
    token = {"access_token":"AQA...OuQ","token_type":"bearer","expiry":"2017-07-13T18:27:46.750140+05:00"}
    
  5. Тот самый конфиг, что был выведен крайней командой нежно копируем в буфер, возвращаемся на сервер, на котором выполняем (я делал под рутом):
    $ rclone --help 2>&1 | grep -e '--config'
    --config string  Config file. (default "/root/.rclone.conf")
    
    # создаем конфиг по указанному пути и вставляем в него содержимое конфига с десктопа:
    $ nano /root/.rclone.conf
    
    # Проверяем
    $ rclone lsd yandex:
    
    # Создаем директорию для бэкапов, например
    $ rclone mkdir yandex:backups
    
    # И заливаем в неё (синхронизируем содержимое локального каталога с директорией в облаке):
    $ rclone sync /var/backups yandex:backups
    
  6. Проверяем содержимое в веб-морде ЯД, опционально — ставим крайнюю команду в крон
# И заливаем в неё (синхронизируем содержимое локального каталога с директорией в облаке):
$ rclone sync /var/backups yandex:backups


Вот после этого кода у меня ничего не происходит, только раз в минуту
2016/07/24 11:29:37
Transferred:      0 Bytes (0 Bytes/s)
Errors:                 0
Checks:                 0
Transferred:            0
Elapsed time:      1m0.2s


lsd работает. Папку на yandex создает
Что то мне подсказывает что возможно проблема с доступом или наличием директории /var/backups в вашем случае
Из этой же папки в другую локальную всё происходит на раз.
Странно но всё заработало. Просто надо было подождать 9 минут.
Только что попробовал с Яндекс.Диск, работает. 500 Mb cкачалось на локальную машину за 1m43.6s, хотя от самой утилиты, я думаю, это не сильно зависит.
Настраивается просто, но требует авторизации через браузер. Т.е. если нужно использовать rclone на удаленной машине, то придется его установить так же и на локальную.
Для работы с Яндекс.Диск можно попробовать использовать «легковесный» ydcmd.
# Синхронизация файлов на локальной машине и в хранилище
$ rclone sync /home/local/directory selectel:[имя контейнера]
# Синхронизация файлов в хранилище с файлами на локальной машине
$ rclone selectel:[имя контейнера] sync /home/local/directory

Небольшие, но важные поправки:


  • $ rclone sync selectel:[имя контейнера] /home/local/directory — потрет всё содержимое /home/local/directory, если директория в облаке пустая
  • Синхронизация локального каталога с облаком выполняется по команде $ rclone sync /home/local/directory selectel:[имя контейнера] — у вас ошибка в порядке аргументов
Здравствуйте!

1) Скорость rclone move в Openstack Swift (Selectel)
Для переменовывания директории использую команду:

rclone move selectel:/containerName/pathFrom/ selectel:/containerName/pathTo/

Примерна скорость: 5G/min

Но если необходимо переместить большую директорию (или просто переиеновать), например 1T, это может занять 3.5 часа

Получается, что move рекурсивно переносит по одному файлу в новое место, вместо того, чтобы сделать rename этих файлов

Есть ли возможность перенести данные внутри одного контейнера быстро?

2) Скорость rclone move в Amazon S3 / Amazon Cloud Drive / Ceph
Подскажите, кто знает, а в Amazon функция move в пределах одного контейнера работает аналогично Openstack Swift (Selectel) или позволяет выполняить мгновенные rename?
Sign up to leave a comment.