Записки IT специалиста

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

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

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

Перейдем от слов к делу. В нашем случае были использованы системы на 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  

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

Обратите внимание, что по умолчанию директория диска создается в папке пользователя, поэтому если вам нужно синхронизировать с облаком другими данными, укажите путь к требуемой папке вручную.

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

  статус яндекс-диска  

Все вроде бы хорошо, но только синхронизируется в обе стороны у нас все содержимое диска, что нужно далеко не всегда, как минимум, сразу следует исключить стандартные папки Яндекс.Диска, если вы их используете. Для этого следует создать список исключений. Откроем конфигурационный файл сервиса, который находится в папке по пути ~/.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 = Яндекс.Диск
Requires = network.target
После = network.target

[Служба]
Тип = разветвление
User = root
Group = root
ExecStart =/usr/bin/yandex-disk start -c/etc/yandex-di sk/config.cfg
RestartSec = 1min
Restart = on-failure

[Установить]
WantedBy = multi-user.target

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

  systemctl --system daemon-reload  

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

  systemctl start yandex-disk.service  

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

  systemctl status яндекс-диск. service  

Если все работает нормально, добавим службу в автозагрузку:

  systemctl enable yandex-disk.service  

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

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

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



Яндекс.Диск — использование хранилища в Linux

В настоящее время очень популярным инструментом для доступа и управления файлами являются так называемые облачные хранилища. Они предполагают размещение пользовательских данных на доступных через интернет удаленных серверах т. е. в «облаке» и доступ к нему посредством специального программного обеспечения (ПО) и протоколов. Компании-разработчики облачных хранилищ и сред практически все популярные платформы и операционные системы (ОС) для взаимодействия пользователей с облаком. Не стала исключением и компания «Яндекс», которая вместе с предоставленным ею сервисом «Яндекс.Диск» предлагает пользователям и одноименный продукт для удобного пользования, собственно, самим сервисом. В этой статье речь пойдёт об утилите Яндекс.Диск и её использование в Linux.

Загрузка и установка пакета Яндекс.Диск

Сама утилита представляет собой демон, постоянно работающий в память и следящий за изменениями установленных файлов и каталогов в локальном и удаленном хранилище (облаке) и реагирует на определенные события (добавление, удаление, переименование и/или изменение файлов/каталогов), запуская синхронизацию, которая актуализирует данные в облаке и локальныхщах. /p>

Утилита является бесплатной и, как указывает сами разработчики, написана на языке C ++ в IDE Kdevelop. Распространяется Яндекс.Диск в виде пакетов * .deb и * .rpm, которые можно скачать и установить, например, вручную (используя менеджер пакетов apt), так и при помощи системы управления пакетами используемой ОС.

Для Ориентированная на Debian система для установки Яндекс.Диск через систему управления пакетами (СУП) нужно выполнить следующие команды:

 sudo echo "deb http://repo.yandex.ru/yandex-disk/deb/ стабильная главная »|  sudo tee -a/etc/apt/sources.list.d/yandex-disk.list>/dev/nullsudo apt-get updatesudo apt-get install yandex-disk 

В результате в системный репозиторий будет добавлен новый источник «deb http://repo.yandex.ru/yandex-disk/deb/stable main» со стабильными сборками Яндекс.Диск, из которого будет производиться установка и последующие обновления утилиты.

Для RPM-ориентированных систем порядок установки с помощью СУП несколько иных. Нужно для начала вручную создать и отредактировать файл для добавления его в системный репозиторий:

 sudo nano/etc/yum.repos.d/yandex.repo

Запустится текстовый редактор nano (сразу создаст файл yandex.repo по указанному пути), в котором нужно получить необходимое содержимое:

 [yandex] name = Yandexfailovermethod = prioritybaseurl = http://repo.yandex.ru/ yandex-disk/rpm/stable/$ basearch/enabled = 1metadata_expire = 1dgpgcheck = 1gpgkey = http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG 

Далее , сохранить сделанные изменения, изменить сочетание клавиш, подтвердить сохранение (Enter), закрыть редактор nano (Ctrl + X) и выполнить следующие команды:

 sudo rpm --import http://repo.yandex.  ru/yandex-disk/YANDEX-DISK-KEY.GPGsudo yum install yandex-disk 

Все эти действия выполняются и при использовании пакетных менеджеров, если сначала скачать пакеты вручную Яндекс.Диска через веб-браузер ( или утилиту wget), например для deb-пакетов:

 sudo dpkg -i yandex-disk_latest_amd64.deb 

Для rpm-пакетов:

 sudo rpm -ivh yandex-disk_latest.x86_64.rpm 

Сами пакеты для нужных платформ и соответствующей архитектуры можно скачать по адресу: https://disk.yandex.ru/download#pc.

Также может потребоваться импортировать с помощью wget открытые GPG-ключи для проверки цифровых подписи пакетов, если это по какой-либо причине не произошло автоматически при использовании СУП или менеджера пакетов. Для Debian:

 wget -O YANDEX-DISK-KEY.GPG http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPGsudo apt-key добавить YANDEX-DISK  -KEY.GPG 

Для RPM:

 sudo rpm --import http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.  GPG 

Управление демоном из внутренней оболочки

Разработчики Яндекс.Диска в этой реализации проекта максимально придерживаться принципов так называемой концепции UNIX-Way, которая предполагает при разработке ПО соблюдение следующих принципы:

  • программа должна быть очень (насколько это возможно) небольшой;
  • программа должна выполнять только одну простую задачу, но выполнять её хорошо;
  • программа должна легко взаимодействовать с другими программами.

Утилита Яндекс.Диск, как уже говорилось, работает как демон (в хорошем смысле…), а потому метод управления ею — это дискретные команды с использованием опций и предписаний. Эти команды могут быть непосредственно в оболочке, так и другими программами, которые могут быть графическими оболочками для демона Яндекс.Д, как в виде оконных приложений, так и в виде виджетов и/или апплетов рабочего стола. Некоторые достойные реализации (YD-tools, Яндекс.Диск ServiceMenu) графического пользовательского интерфейса (GUI) давно существуют.

Для управления клиентом Яндекс. Диск предназначен для команды yandex-disk, ее общий синтаксис следующий:

 yandex-disk внутренняя_команда [ОПЦИИ] 

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

Начальное конфигурирование демона.
Команда Назначение
start Запускает как демон и начинает синхронизацию каталога. В файле «.sync/status» системы записывается текущий статус синхронизации.
stop Останавливает демон.
status Вывод статуса демона: статус синхронизации, ошибки, последние синхронизированные файлы, состояние дискового пространства.
token Получает OAuth-токен, шифрует и сохраняет его в специальном файле (по умочанию -/.config/yandex- диск/пароль). Если не указаны опции -p ПАРОЛЬ или —password PASSWORD, то выводит ввод пароля из STDIN.
sync Синхронизирует каталог и завершение работы (если демон запущен, до окончания синхронизации). Требуется для ручной синхронизации по требованию.
publish Делает файл/каталог публичным и выводит ссылку в STDOUT. Сам объект будет скопирован в синхронизируемый каталог. Для перезаписи программ следует использовать опцию —overwrite.
unpublish Удаляет публичный доступ к файлу/каталогу.
setup Начальное конфигурирование демона.

Начальное конфигурирование демона.

Соответственно сами эти команды могут быть в следующем виде:

 yandex-disk start [OPTION] yandex-disk stop [OPTION] yandex-disk status [OPTION] yandex-disk sync [OPTION] yandex-disk token [-p, --password = PASSWORD] [OPTION] USERNAME  [ФАЙЛ] публикация на яндекс-диске [ОПЦИЯ] ФАЙЛyandex-disk отменить публикацию ФАЙЛА 

В следующей таблице представлено описание всех доступных для яндекс-диска опций:

Опция Описание
—config = FILE, -c FILE Читает опции из конфигурационного файла. Файл должен содержать строку вида имя = значение. Путь к файлу по умолчанию ~/.config/yandex-disk/config.cfg.
—dir = DIR, -d DIR Задаёт путь к каталогу Яндекс.Диска.
—auth = FILE, -a FILE Читает данные токена из файла. Файл должен быть сгенерирован командой token. Путь к файлу по умолчанию ~/.config/yandex-disk/passwd.
—exclude-dirs = DIR1, DIR2,… Исключает из существующих каталоги.
— только чтение Указывает не загружать локальные изменения в облако. Измененные локально файлы будут переименованы.
—overwrite Указывает в режиме «только для чтения» перезаписывать локально измененные файлы.
—no-daemon, -D Запускает демон без возможности управления через командную оболочку. Чтобы вернуть управление, демон необходимо остановить, запустить в другую консоль команду yandex-disk stop или закрыв текущую консоль.
—version, -v Выводит информацию о версии.
—proxy = PARAM Задаёт настройки прокси-сервера. Допустимые параметры: auto — использовать команду прокси-сервера — используется по умолчанию, no — не использовать прокси-сервер. протокол, адрес, порт, логин, пароль — вручную. Пример настройки прокси-сервера вручную:
proxy = socks4, my.proxy.local, 1080, логин, пароль

Как можно Разработчики, разработчики подошли к реализации утилиты Яндекс.Диск, что называется — «по-настоящему», ярко отразив в ней философию маленькой, эффективной, простой и удобной UNIX-программы. Все команды и опции говорят сами за себя и настройка демона Яндекс.Диск не вызывает никаких сложностей.

Первое, что необходимо выполнить в строке, после установки утилиты Яндекс.Диск — это запустить начальную настройку её демона с помощью команды:

 $ yandex-disk setup 

Далее нужно проследить несложный процесс, в ходе которого будет предложено создать защищённый токен на основе учётных данных, задать настройки прокси- сервера (если его использовать), указать путь к каталогу синхронизации, а также определить опции автозапуска демона при входе в систему:

 $ yandex-disk setupИспользовать прокси-сервер?  [y/N]: NАвторизацияЕсли у вас ещё нет аккаунта на Яндексе, его можно завести по ссылке https://passport.yandex.ru/passport?mode=registerВведите логин: myloginВведите пароль: Токен сохранен в/home/john/.config /yandex-disk/passwdНастройка Яндекс.ДискаВведите путь к папке Яндекс.Диска (Оставьте пустым для использования папок '/home/john/Yandex.Disk'):/media/john/Yandex.Disk/Disk/Запускать Яндекс.Диск при входе  в систему?  [Y/n]: YЗапуск демона ... Готово 

В приведённом примере производится настройка демона синхронизатора для записи mylogin без задействования прокси-сервера. Каталогом для различных в данном случае является каталог Диск на отдельном разделе (или устройстве) Яндекс.Диск.

Интеграция с файловым менеджером

Сервис Яндекс.Диск поддерживает работу по протоколу WebDAV, то синхронизацию легко настроить для приложений, которые включают эту систему. В Linux таковыми являются например файловые менеджеры Dolphin (для среды KDE), а также Nautilus — для среды GNOME.

Сама настройка файлового менеджера для работы через WebDAV совсем несложна и на примере Dolphin выглядит следующим образом:

  • Для начала в адресной строке перейти к файлу менеджера нужно по адресу webdavs://webdav.yandex.ru.
  • Далее, в появившемся диалоговом окне требуется обязательное имя пользователя и пароль для доступа к облачному хранилищу.
  • После успешной авторизации Dolphin предоставит содержимое хранилища, как-будто это локальный каталог.
  • По желанию можно добавить данный адрес в список точек «быстрого входа» в Dolphin, чтобы каждый раз не вводить вручную.

Как можно видеть, благодаря грамотной реализации для Linux-систем и поддержки современных технологий для работы и данных в удаленных хранилищах, утилита Яндекс.Диск легко и гибко спос обналичить синхронизацию файлов. Для системных администраторов она примечательна ещё и тем, что полностью соответствует принципам администрирования систем UNIX/Linux. И если это позволяет политика и регламент безопасности сети организации, утилита Яндекс.Диск — это отличный вариант предоставить пользователям инструмент для синхронизации их данных с облаком.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие посты:

  1. Firewalld, установка и настройка, зоны, NAT, проброс портов
  2. Пользователи и группы в linux. Удаление редактирование пользователей
  3. Команда cat в Linux
  4. Система контроля версий GIT

круто, спасибо, хотел на своем старом ноуте с линукс, установить яндекс диск, теперь знаю как) хороший у Вас сайт, вижу часто выкладываете статьи, буду дальше изучать.

Оцените статью
logicle.ru
Добавить комментарий