Гид по технологиям

OneDrive на Linux — установка и синхронизация

6 min read Облачное хранение Обновлено 27 Nov 2025
OneDrive на Linux — установка и синхронизация
OneDrive на Linux — установка и синхронизация

Синхронизация OneDrive на Linux — иллюстрация

Иногда приходится использовать проприетарные продукты ради удобства и совместимости. Google, Amazon, Dropbox и Microsoft доминируют в облачном хранении: их сервисы надёжны и часто бесплатны, но для работы с ними сервисы могут индексировать или предоставлять данные по законным запросам. Это реальность, но она не отменяет удобства использования таких сервисов.

OneDrive — облачное хранилище Microsoft. Хотя оно естественно ориентировано на Windows, подключить OneDrive к Linux-машинам можно просто и надёжно. Один из лучших способов — использовать скриптовый/CLI-клиент onedrive (проект abraunegg/onedrive на GitHub).

Важно: перед установкой убедитесь, что у вас есть учётная запись Microsoft и доступ к терминалу с правами sudo.

Что такое onedrive

onedrive — это CLI-клиент на D, который синхронизирует локальную папку с вашим OneDrive. Он поддерживает одностороннюю и двустороннюю синхронизацию, мониторинг изменений, выборочную синхронизацию и некоторые настройки робастности.

Определение в одну строку: onedrive — открытый CLI-клиент для синхронизации данных OneDrive на Linux.

Перед началом — зависимости

Установите базовые зависимости и git. Примеры для популярных дистрибутивов.

Для Ubuntu / Debian

sudo apt update
sudo apt install libcurl4-openssl-dev libsqlite3-dev git curl build-essential

Если вы используете Ubuntu 18.04 или новее, можно установить DMD через snap:

sudo snap install --classic dmd && sudo snap install --classic dub

На старых релизах потребуются дополнительные шаги для установки компилятора D; если вы не уверены — используйте snap или установите dmd через пакетный репозиторий вашего дистрибутива.

Для Fedora

sudo yum install libcurl-devel git sqlite-devel curl make gcc
curl -fsS https://dlang.org/install.sh | bash -s dmd

(В современных Fedora можно заменить yum на dnf.)

Для Arch Linux

sudo pacman -Syu curl sqlite dlang git base-devel

Примечание: набор пакетов зависит от дистрибутива и версии. Если вы используете корпоративный/специальный образ, обратитесь к документации дистрибутива.

Установка onedrive из исходников

Склонируйте репозиторий и соберите клиент:

git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./configure
make
sudo make install

После установки запустите клиент для первичной авторизации:

onedrive

Клиент откроет URL-адрес в терминале — посетите его в браузере, войдите в учётную запись Microsoft и предоставьте разрешения приложению.

URL авторизации OneDrive в браузере

После успешной авторизации сервис покажет страницу подтверждения; скопируйте URL и вставьте его в терминал, как предложит клиент.

Страница авторизации Microsoft — разрешения приложения

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

Базовые команды

  • Запуск синхронизации один раз:
onedrive --synchronize
  • Непрерывный мониторинг локальной папки и автоматический запуск синхронизации:
onedrive --monitor
  • Показ текущей конфигурации:
onedrive --display-config
  • Принудительная пересинхронизация (очистка локальной БД и повторная загрузка):
onedrive --resync
  • Выход/отмена авторизации:
onedrive --logout

Вывод конфигурации onedrive в терминале

Настройка конфигурации

Файл конфигурации находится в каталоге репозитория (config). Чтобы активировать его, переместите в ~/.config/onedrive/:

mkdir -p ~/.config/onedrive
cp ~/onedrive/config ~/.config/onedrive/config

Откройте ~/.config/onedrive/config и отредактируйте ключевые параметры:

  • sync_dir: путь к локальной папке, где будут храниться файлы OneDrive. Всё, что добавлено/удалено в этой папке, будет синхронизировано.
  • skip_files: шаблоны файлов, которые не надо синхронизировать (например, *.tmp).
  • monitor_interval: интервал в секундах между автоматическими проверками при режиме –monitor.

Сохраните изменения и перезапустите onedrive (или запустите с нужными флагами).

Выборочная синхронизация (Sync List)

Если не хотите синхронизировать весь аккаунт, создайте файл sync_list в ~/.config/onedrive/ и перечислите в нём относительные пути (от корня OneDrive) к файлам и папкам, которые нужно синхронизировать.

Пример содержимого sync_list:

Documents/Reports
Photos/Vacation

После изменения списка перезапустите клиент.

Запуск onedrive при входе (автозапуск)

Есть два распространённых подхода.

  1. Добавить команду в автозагрузку окружения рабочего стола: onedrive --monitor.

  2. Создать системный user-сервис systemd (рекомендуется для стабильности). Пример user unit:

# ~/.config/systemd/user/onedrive.service
[Unit]
Description=OneDrive Free Client
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/onedrive --monitor
Restart=on-failure

[Install]
WantedBy=default.target

Включение и запуск:

systemctl --user daemon-reload
systemctl --user enable --now onedrive.service

Важно: убедитесь, что PATH и путь к исполняемому файлу совпадают с местом установки onedrive.

Отладка и частые проблемы

  • Ошибка авторизации: повторно выполните onedrive --logout, затем onedrive и пройдите процедуру авторизации заново.
  • Конфликты файлов: проверяйте лог клиента. Для принудительного восстановления используйте --resync.
  • Проблемы с зависимостями D: установите dmd/dub через snap или инструкции dlang.org.
  • Не синхронизируются большие файлы: проверьте ограничения сети, VPN и политики корпоративного прокси.

Команды для диагностики и логов:

onedrive --synchronize --verbose
journalctl --user -u onedrive.service

Когда onedrive не подходит (ограничения)

  • Если вам нужна полная клиентская интеграция с GUI (автоматическое монтирование в файловый менеджер, полнофункциональные контекстные меню), возможно, стоит рассмотреть коммерческие решения.
  • Для сложной работы с SharePoint или специфическими бизнес-аккаунтами проверяйте документацию проекта на GitHub — возможности могут отличаться.

Альтернативы и сравнение (кратко)

  • rclone — универсальный инструмент, поддерживает OneDrive и многие другие провайдеры; более гибкий для скриптов и серверов.
  • insync — платный клиент с GUI, хорошо интегрируется с рабочим столом.
  • onedrive (abraunegg) — лучший вариант для легковесной CLI-синхронизации и автоматизации.

Выбор зависит от задач: если нужен GUI и простота — Insync; если нужен серверный гибкий инструмент — rclone; если нужен открытый CLI-клиент для настольного использования — onedrive.

Мини-методология внедрения (шаги)

  1. Оцените требования (объём данных, политика безопасности, нужные функции).
  2. Установите зависимости и клиента согласно дистрибутиву.
  3. Авторизуйте клиент и выполните первичную синхронизацию в тестовую папку.
  4. Настройте config, sync_list и skip_files.
  5. Настройте автозапуск (systemd user) и мониторинг.
  6. Проведите тесты (проверка загрузки/скачивания, конфликтов, больших файлов).
  7. Переведите в эксплуатацию.

Ролевые чек-листы

Для администратора:

  • Проверить сетевые политики и прокси.
  • Обеспечить доступ к GitHub и dlang-установкам.
  • Настроить systemd unit и логи.

Для пользователя:

  • Убедиться в наличии учётной записи Microsoft.
  • Выбрать sync_dir и заполнить sync_list.
  • Изучить команды --synchronize, --monitor и --display-config.

Для DevOps/серверной команды:

  • Рассмотреть rclone как альтернативу для серверных задач.
  • Автоматизировать обновления клиента и резервное копирование конфигураций.

Критерии приёмки

  • Локальная sync_dir содержит файлы из OneDrive.
  • onedrive --display-config показывает ожидаемые параметры.
  • Автозапуск успешно включён (systemctl --user status onedrive.service).
  • Логи не содержат критических ошибок при синхронизации.

Безопасность и приватность

onedrive использует OAuth-авторизацию через Microsoft. Клиент хранит токены локально — защитите домашнюю папку от постороннего доступа. Если требуются дополнительные меры, применяйте шифрование на уровне файловой системы (например, LUKS) и VPN при передаче данных.

Примечание по GDPR: использование OneDrive подчиняется политике Microsoft и требованиям вашей организации; для чувствительных данных проконсультируйтесь с юридическим/комплаенс-отделом.

Часто задаваемые вопросы

Нужно ли использовать GUI для авторизации?

Нет: клиент выдаст URL, который вы должны открыть в браузере и подтвердить разрешения. Это единоразовый шаг.

Поддерживает ли клиент OneDrive for Business и SharePoint?

Проект поддерживает рабочие и личные аккаунты, но детали и ограничения для SharePoint зависят от версии сервиса — смотрите документацию проекта на GitHub.

Можно ли синхронизировать только отдельные папки?

Да — используйте файл sync_list в ~/.config/onedrive/.

Что делать при конфликте файлов?

Проверьте логи, вручную разрешите конфликты и при необходимости выполните onedrive --resync.


Изображение: Microsoft OneDrive

Итог

onedrive — стабильный и гибкий CLI-клиент для синхронизации OneDrive на Linux. Он пригоден для настольных и серверных задач, особенно если нужна автоматизация через systemd и точный контроль синхронизируемых папок. Альтернативы (rclone, Insync) стоит рассматривать в зависимости от требований GUI, лицензирования и интеграции.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как внести чек через телефон — пошаговое руководство
Банковские услуги

Как внести чек через телефон — пошаговое руководство

Включить Microsoft Defender Antivirus в Windows 10
Security

Включить Microsoft Defender Antivirus в Windows 10

Установка Connect в Windows 10
Windows

Установка Connect в Windows 10

Синхронизация браузеров: перенос закладок и паролей
Руководство

Синхронизация браузеров: перенос закладок и паролей

Трансляция Prime Video на Discord
Стриминг

Трансляция Prime Video на Discord

Карусель Instagram в Photoshop — пошагово
Дизайн

Карусель Instagram в Photoshop — пошагово