4.33333333333331111111111Rating 4.33 (3 Votes)

Понадобилось синхронизировать файлы с локального диска в OneDrive и обратно. Нашел, протестировал инструмент - работает, собственно об этом пойдет речь ниже. 

Сама тулза написана на языке D, по сути весь экшн-план по установке состоит из компиляции, установке onedrive и взаимосвязанных служб.

Onedrive в Linux

Скажу сразу - это не официальный клиент, беглый осмотр исходного кода не показал каких-либо пюрешек, поэтому собственно решено было этот клиент попробовать. По сути onedrive это CLI-утилита, может работать в Ubuntu, Fedora, Arch, может синхронизировать каталоги, файлы, устанавливается и настраивается довольно просто, ниже пойдет речь про Fedora, но  в репе проекта есть инструкции по установке в других дистрах.

Установка

Необходимо установить пару devel библиотек и поддержку git:

dnf install libcurl-devel sqlite-devel git

Загрузить интерпретатор D, он загрузится, его можно будет активировать, после компиляции проекта, деактивировать:

curl -fsS https://dlang.org/install.sh | bash -s dmd

Клонировать проект с GitHub:

git clone https://github.com/abraunegg/onedrive.git

Активировать D, установщик выдаст подсказку как запускать / останавливать окружение D, в моем случае это выглядело так:

source ~/dlang/dmd-2.085.0/activate

Скомпилировать клонированный onedrive проект, установить (если необходимо):

cd onedrive
make
make install

Вывод процесса установки:

mkdir -p /var/log/onedrive
chown root.users /var/log/onedrive
chmod 0775 /var/log/onedrive
install -D onedrive /usr/local/bin/onedrive
install -D onedrive.1 /usr/local/share/man/man1/onedrive.1
install -D -m 644 logrotate/onedrive.logrotate /etc/logrotate.d/onedrive
for i in README.md README.Office365.md config LICENSE CHANGELOG.md ; do install -D -m 644 $i /usr/local/share/doc/onedrive/$i ; done
mkdir -p /usr/lib/systemd/user/
chown root.root /usr/lib/systemd/user/
chmod 0755 /usr/lib/systemd/user/
install -D -m 644 onedrive.service /usr/lib/systemd/user/
mkdir -p /usr/lib/systemd/system/
chown root.root /usr/lib/systemd/system/
chmod 0755 /usr/lib/systemd/system/
install -D -m 644 [email protected] /usr/lib/systemd/system/
install -D -m 644 onedrive.service /usr/lib/systemd/user/onedrive.service

Деактивировать окружение:

deactivate

Настройка

В момент первого запуска появится запрос авторизации с авторизационной ссылкой, ее необходимо будет скопировать, вставить в адресную строку браузера, собственно запуск:

onedrive

После перехода по ссылке появится окно в котором будут указаны запрашиваемые разрешения на доступ к OD:

onedrive linux setup

После нажатия кнопки Accept откроется белая страница, необходимо скопировать ее адрес и вставить в запрашиваемое поле Enter the response uri:

onedrive linux setup2

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

Просмотреть параметры текущей конфигурации можно так:

onedrive --display-config

Можно кастомизировать конфиг, файл шаблона конфига находится в папке проекта, создаем необходимый каталог:

mkdir -p ~/.config/onedrive

В нем файл создать config:

nano ~/.config/onedrive/config

С параметрами:

sync_dir = "~/OneDrive"
skip_file = "~*"
monitor_interval = "45"

Либо просто скопировать темплейт конфига:

cp ./config ~/.config/onedrive/config

Можно включать, исключать из синхронизации определенные файлы, каталоги. Например указать какие именно файлы и каталоги синхронизировать:

nano ~/.config/onedrive/sync_list

В котором указать файлы / каталоги:

DocFolder
folder/file.txt
folder1/subfolder
test.txt

Включение службы onedrive

Включать службу можно непосредственно под пользователем которому нужна синхронизация:

systemctl --user enable onedrive && systemctl --user start onedrive

Просмотр истории запусков:

journalctl --user-unit onedrive -f

Тестирование

Создаем тестовый файл:

touch ~/OneDrive/sysnc-test.txt

Выжидаем указанный таймаут синхронизации (по умолчанию 45 секунд), смотрим результат в OD:

onedrive linux setup3

Редактируем на стороне OD

onedrive linux setup5

Cнова проверяем:

onedrive linux setup4

Репозиторий проекта:

Done!

Добавить комментарий


Защитный код
Обновить

Сейчас 447 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз