Не так давно разработчики Odrive выпустили бета-версию клиента для ОС Linux. Клиент не имеет графического интерфейса и контекстного меню, но делает по сути то же самое, что и клиент для Windows.
Для установки используем консоль. В моём случае Odrive будет работать на ПК с KDE Neon, но всё это должно работать на любой линукс-системе. Приступим.
od="$HOME/.odrive-agent/bin" && curl -L "http://dl.odrive.com/odrive-py" --create-dirs -o "$od/odrive.py" && curl -L "http://dl.odrive.com/odriveagent-lnx-64" | tar -xvzf- -C "$od/" && curl -L "http://dl.odrive.com/odrivecli-lnx-64" | tar -xvzf- -C "$od/"
Если у вас по каким-то причинам 32-х разрядная ОС, то команда должна быть следующей:
od="$HOME/.odrive-agent/bin" && curl -L "http://dl.odrive.com/odrive-py" --create-dirs -o "$od/odrive.py" && curl -L "http://dl.odrive.com/odriveagent-lnx-32" | tar -xvzf- -C "$od/" && curl -L "http://dl.odrive.com/odrivecli-lnx-32" | tar -xvzf- -C "$od/"
Тем самым мы скачали и установили бинарники в домашнюю директорию, в папку ".odrive-agent".
Запускаем сервис в отдельной сессии терминала
nohup "$HOME/.odrive-agent/bin/odriveagent">/dev/null&
Если постоянно запущенная сессия в терминале при работе с Odrive не греет, то прописываем сервис в автозапуск. Сервис будет работать в фоновом режиме.
Там, где удобно, создаём скрипт следующего содержания:
#! /bin/bash
nohup "$HOME/.odrive-agent/bin/odriveagent">/dev/null&
Поскольку в примере используется рабочий стол KDE, помещаем ссылку на созданный скрипт в /home/учётная_запись_пользователя/.config/autostart-scripts/, или используем настройки автозапуска KDE. Сервис будет запускаться автоматически каждый раз при старте пользовательской сессии.
Теперь, когда сервис работает, запускаем клиент:
"$HOME/.odrive-agent/bin/odrive" -h
Проверяем статус:
"$HOME/.odrive-agent/bin/odrive" status
Теперь нам необходима авторизация для работы со службой. Переходим на
"$HOME/.odrive-agent/bin/odrive" authenticate 00000000-0000-0000-0000-000000000000-00000000
Заменяем ноли на свой ключ.
Снова проверяем статус. Должно получиться нечто похожее на то, что на скриншоте.
Монтируем сервис к папке в вашей файловой системе. Для этого создаём папку с любым удобным именем. Например Odrive.
mkdir "$HOME/Odrive"
Монтируем:
"$HOME/.odrive-agent/bin/odrive" mount "$HOME/Odrive" /
В домашней директории, в папке Odrive появятся ярлыки (.cloudf) подключенных к вашему аккаунту сервисов. Например, к сервису подключен OneDrive и в корне имеется одноимённая папка. Для синхронизации папки необходимо выполнить следующее:
"$HOME/.odrive-agent/bin/odrive" sync "$HOME/Odrive/OneDrive.cloudf"
Тем же способом синхронизируем другие каталоги или файлы в них. Например:
"$HOME/.odrive-agent/bin/odrive" sync "$HOME/Odrive/OneDrive/Docs/Myfile.txt.cloud"
Если нужно синхронизировать все вложенные каталоги в определённой папке, то делаем следующее:
exec 6>&1;output="go"; while [ "$output" ]; do output=$(find "$HOME/Odrive/OneDrive/Music/" -maxdepth 2 -name "*.cloudf" -exec python "$HOME/.odrive-agent/bin/odrive.py" sync "{}" \;|tee /dev/fd/6); done
Из вышеуказанной команды видно, что в /Odrive/OneDrive/Music/ у нас, по всей видимости, музыка. Музыка эта не свалена в кучу, а разложена по исполнителям, в каждой папке с исполнителем, если папки с альбомами. Поэтому -maxdepth 2. Для синхронизации всех треков в этих папках нужно выполнить следующую команду:
exec 6>&1;output="go"; while [ "$output" ]; do output=$(find "$HOME/Odrive/OneDrive/Music/" -maxdepth 3 -name "*.cloud" -exec python "$HOME/.odrive-agent/bin/odrive.py" sync "{}" \;|tee /dev/fd/6); done
Сервис, работающий в фоновом режиме, будет следить за изменениями по обе стороны. Положенный в соответствующую папку файл, будет загружен в Облако (не моментально, но будет), если в Облаке произошли изменения, вы увидите ссылки на новые файлы. Проверка статуса так же покажет изменения. Пурпурным цветом отображаются текущие процессы. Смотрите предыдущий скриншот.
Tatyana K.