Yandex disk в Linux — подключаем с автоматической синхронизацией

monitor_soft

Многие пользователи linux ранее не имели возможности автоматической синхронизации подключенного Yandex Disk в Linux.

На сегодняшний день такая возможность предоставлена разработчиками сервиса. Теперь можно подключить ваш Яндекс диск в виде папки и запустить постоянную автоматическую синхронизацию файлов.

В статье будет рассказано, как я настроил себе Яндекс диск в Linux с автоматической синхронизацией. Если вы хотите посмотреть или воспользоваться инструкцией от самих разработчиков то пройдите по этой ссылке.

Инструкция предлагаемая разработчиками — превосходно работает на сегодняшний день. Правда она предполагает использование только одного аккаунта Yandex disk.

Мне понадобилось подключить две папки от облачного хранилища Yandex disk.

Готового решения данного вопроса на сегодняшний день я не нашел.

Проанализировав способы подключения Yandex disk в Linux с синхронизацией, которые предлагают на различных сторонних ресурсах, я сформировал для себя рабочий вариант.

Мой способ подключения подойдет для Debian и дистрибутивов основанных на нем — Ubuntu, Linux mint и т.п.

Я использую Debian 11 и все ниже описанное проделал на нем. Все отлично работает.

Устанавливаем Yandex disk в Linux

Для начала скачаем последний deb пакет yandex disk от разработчиков на их официальном сайте тут. Выбирайте именно тот пакет который соответствует разрядности вашей операционной системе.

После скачивания deb пакета устанавливаем его с помощью утилиты Gdebi.

Можно проделать это командой из терминала, откройте терминал из папки в которую скачен deb пакет (контекстное меню по правой кнопке мышки в окне файлового менеджера) и введите команду

sudo dpkg -i Имя-скаченного-пакета.deb
yandex disk в linux устанавливаем deb пакет

Теперь нам надо произвести первоначальную настройку, подключить свой Яндекс диск.

Вводим команду в терминале

yandex-disk setup

В терминале вас спросят — используете ли вы прокси сервер?

Я естественно ответил «n», я не использую его.

Потом попросят перейти по указанной ссылке и ввести, предоставленный пароль.

yandex disk настройка синхронизации

После того как вы введете пароль у вас попросит указать папку которую вы будете синхронизировать.

Папку нужно создать за ранее. Я указал папку в домашней директории.

И согласился с запуском синхронизации при старте системы.

Последний этам настройки синхронизации яндекс диска

На данном этапе, если у Вас всего один аккаунт Яндекс диска, настройку можно закончить.

Папка указанная для синхронизации будет автоматически синхронизироваться с вашим Яндекс диском.

Подготовка к подключению второго Яндекс диска

Если вы хотите подключить второй яндекс диск, то у вас ничего не выйдет. Вернее выйдет, вы настроите подключение точно так же, но предыдущий перестанет работать.

Будет работать только один который вы настроите последним.

Поэтому перед тем как настраивать второй яндекс диск нужно проделать следующее.

Вначале останавливаем сервис yandex-disk

yandex-disk stop

Теперь нам нужно перенести файлы настроек настроенного яндекс диска в другую директорию, я просто переименовал ее в yandex-disk1

mv ~/.config/yandex-disk  ~/.config/yandex-disk1

Теперь откроем файл config.cfg из переименованной папки yandex-disk1

nano ~/.config/yandex-disk1/config.cfg

И исправим путь к файлу с паролем passwd, в соответствии с тем как вы переименовали папку, а именно строка auth=….

Также можно указать другую папку для синхронизации с яндекс диском в строке dir

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

Вот как это выглядит в моем случае

меняем путь к файлу пароля яндекс диска

Естественно сохраняем сочетанием клавиш Ctrl+O и закрываем Ctrl-X

Теперь создадим юнит для systemd, сам файл

# touch /etc/systemd/system/yandex-disk.service

Откроем созданный файл командой

# nano  /etc/systemd/system/yandex-disk.service

Внесем в него следующее содержимое, с учетом нашего расположения новой папки конфигурационных файлов.

Обратите внимание на строки User и Group, я указал логин и группу своего пользователя.

[Unit]
Description=Yandex.Disk
Requires=network.target
After=network.target

[Service]
Type=forking
User=user
Group=user
ExecStart=/usr/bin/yandex-disk start -c /home/user/.config/yandex-disk1/config.cfg
RestartSec=1min
Restart=on-failure

[Install]
WantedBy=multi-user.target

Естественно сохраняем сочетанием клавиш Ctrl+O и закрываем Ctrl-X

Перезапустим systemd

systemctl --system daemon-reload

Запустим созданную нами службу

systemctl start yandex-disk.service

Посмотреть как работает

systemctl status yandex-disk.service

Теперь добавим службу в автозагрузку, если все работает

systemctl enable yandex-disk.service

Теперь перезагружаем систему и проверяем работает ли синхронизация нашей папки Яндекс диска

Напоминаю, наша папка была указана по умолчанию в домашней директории ~/Yandex.Disk

папка яндекс диска.

Теперь устанавливаем второй аккаунт Яндекс

Настраиваем второй аккаунт простой командой, как и в первом случае

yandex-disk setup

Просто указываем другой каталог синхронизации, а так как настройки предыдущего аккаунта мы перенесли в другое место и сделали запуск синхронизации через системную службу systemd — она тоже будет работать.

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

Если есть, кому, что добавить или сказать, пишите в комментариях.

Всем Удачи!

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

  1. Денис

    Не получается задать папку на другом физическом диске.

    Ответить
    1. Илья Агапов автор

      Я все делал как описано в статье, на Debian 11, все работало.
      Данную процедуру проделывал два раза, оба успешно.
      Учитывая нынешнюю обстановку в мире, что то «банят», что то криво работает и т.п. — допускаю, что может заработать не с первого раза.

      Ответить
      1. Денис

        О, оказалось не в «банях» дело
        Помог коммент
        https://github.com/slytomcat/yandex-disk-indicator/issues/183?ysclid=l9frtdz86a630892584
        «При возникновении подобной проблемы мне помогло удаление файла «~uid» из папки .sync в корне диска»
        Сути действий я не понял, но помогло

        Ответить
        1. Илья Агапов автор

          Спасибо за информацию!!!
          Будем иметь ввиду. В файле идентификатор или ключ какой то судя по содержанию.
          Удачи!

          Ответить
  2. Алексей

    Спасибо. Очень помогло. Ubuntu 22.

    Но при этом на втором компе не взлетело.
    Стартует, но в статусе выводит «no internet access», не смог разобраться,
    пока 2й диск запускаю из терминала с параметром -D

    Ответить
    1. Илья Агапов автор

      Настраивал только на Debian, пару раз, все работало. Постарался все максимально описать в статье. Вообще все это было проделано в качестве эксперимента, но оно заработало.
      По моему разработчики вообще не предусматривали одновременную работу и синхронизацию с двумя дисками на одном пк, даже в windows.

      Ответить
  3. Игорь

    Спасибо. все сработало с первого раза. Гуд !!!!!!

    Ответить