Установка консольного клиента Яндекс.Диск на Debian / Ubuntu

  • Автор:

yandex-disk-debian-000.png

Яндекс.Диск - популярный отечественный облачный сервис для хранения и синхронизации пользовательских данных. Многие администраторы широко применяют его в своей повседневной деятельности для организации обмена файлами или хранения резервных копий. Чаще всего Яндекс.Диск используют на платформе Windows, для которой существует простое и удобное графическое приложение. Но далеко не все знают, что существует не менее удобный консольный клиент для ОС семейства Linux, о котором мы сегодня хотим вам рассказать.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Идея использовать Яндекс.Диск как дополнительное хранилище резервных копий является весьма интересной, потому как на клиентское приложение сервиса можно переложить достаточно большой пласт задач, связанный с размещением данных в облаке и контролем их целостности. Действительно, нам не нужно ни о чем заботиться, кроме как положить файлы в нужную папку локально, остальное клиент берет на себя.

Ценовая политика сервиса позволяет достаточно недорого получить пространство, достаточное для хранения данных небольших и средних организаций. Так годовую подписку на 100 ГБ можно сегодня приобрести за 990 руб, а на 1 ТБ за 2500 руб. Это недорого, собственная инфраструктура обойдется вам существенно дороже, 2500 руб - это цена одиночного жесткого диска на 1 ТБ, добавим к нему еще один диск (RAID 1), железо для NAS (или готовое устройство), канал связи, ИБП. Да и разместить это все надо надежно где-то за пределами офиса.

Перейдем от слов к делу. В нашем случае были использованы системы на Debian 9 и Ubuntu Server 16.04, но данная инструкция будет справедлива для любого основанного на них дистрибутива, в т.ч. настольного. Все описанные ниже действия следует выполнять с правами суперпользователя.

Прежде всего подключим репозиторий Яндекс.Диска:

echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" >> /etc/apt/sources.list.d/yandex-disk.list

Скачаем и установим в систему его GPG-ключ:

wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | apt-key add

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

apt update
apt install yandex-disk

Для первоначальной настройки следует воспользоваться мастером установки:

yandex-disk setup

Будет задано несколько простых вопросов, после чего клиент будет автоматически сконфигурирован и добавлен в автозапуск.

yandex-disk-debian-001.pngОбратите внимание, что по умолчанию директория диска создается в домашней папке пользователя, поэтому если вам нужно синхронизировать с облаком иные данные, то укажите путь к требуемой папке вручную.

Сразу после запуска службы начнется синхронизация. Текущий статус можно выяснить командой:

yandex-disk status

yandex-disk-debian-002.pngВсе вроде бы хорошо, но только синхронизируется в обе стороны у нас все содержимое диска, что нужно далеко не всегда, как минимум, сразу следует исключить стандартные папки Яндекс.Диска, если вы их используете. Для этого следует создать список исключений. Откроем конфигурационный файл сервиса, который находится в домашней папке по пути ~/.config/yandex-disk/config.cfg и добавим туда строку:

exclude-dirs="Загрузки,Музыка,Скриншоты"

Путь к папкам исключениям следует указывать относительно корневой папки Яндекс.Диска, которая указана в опции:

dir="/backup/yandex"

Т.е. если у вас существует директория /backup/yandex/mydir1/mydir2, то в исключениях следует указать mydir1/mydir2. директории перечисляются через запятую, без пробелов. После внесения изменений сервис необходимо перезапустить:

yandex-disk stop
yandex-disk start

Больше параметров можно узнать в официальной документации: https://yandex.ru/support/disk/cli-clients.html

Если речь идет о настольной системе, то этого достаточно, Яндекс.Диск будет запускаться при входе в систему текущего пользователя и в фоне заниматься своим делом. Но для консольных серверов он не подходит, так как вошедших в систему пользователей там может и не быть. Для полноценной работы в этой среде нам нужно настроить работу Яндекс.Диска как системной службы.

Для начала остановим приложение:

yandex-disk stop

Затем перенесем каталог настроек в директорию /etc, хранить настройки системной службы в директории пользователя - не самая лучшая идея:

mv ~/.config/yandex-disk /etc

После чего откроем /etc/yandex-disk/config.cfg и исправим путь к файлу токена:

auth="/etc/yandex-disk/passwd"

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

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

И внесем в него следующий текст:

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

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

[Install]
WantedBy=multi-user.target

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

systemctl --system daemon-reload

И запустим саму службу:

systemctl start yandex-disk.service

Проконтролировать ее работу можно командой:

systemctl status yandex-disk.service

yandex-disk-debian-003.pngЕсли все работает нормально, добавим службу в автозагрузку:

systemctl enable yandex-disk.service

И удалим скрипт автозагрузки приложения при входе в систему:

rm ~/.config/autostart/Yandex.Disk.desktop

Как видим, установить консольный клиент Яндекс.Диск совсем несложно, при этом по удобству использования он мало отличается от своего настольного собрата, позволяя полноценно использовать сервис даже в среде Linux-серверов.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Дополнительные материалы:


  1. Установка консольного клиента Яндекс.Диск на Debian / Ubuntu
  2. Очистка корзины Яндекс.Диска через API в Debian и Ubuntu
  3. Очистка корзины Яндекс.Диска через API в Windows

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments