Записки IT специалиста
Установка консольного клиента Яндекс.Диск на Debian / Ubuntu
Яндекс.Диск — популярный отечественный облачный сервис для хранения и синхронизации пользовательских данных. Многие администраторы широко применяют его в своей повседневной деятельности для организации обмена файлами или хранения резервных копий. Чаще всего Яндекс.Диск используют на платформе Windows, для которой существует простое и удобное графическое приложение. Но далеко не все знают, что существует не менее удобный консольный клиент для ОС семейства Linux, о котором мы сегодня хотим вам рассказать.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Идея использовать Яндекс.Диск как дополнительное хранилище резервных копий является весьма интересной, потому как на клиентское приложение сервиса можно переложить достаточно большой пласт задач, связанный с размещением данных в облаке и контролем их целостности. Действительно, нам не нужно ни о чем заботиться, кроме как положить файлы в нужную папку локально, остальное клиент берет на себя.
Ценовая политика сервиса позволяет достаточно недорого получить пространство, достаточное для хранения данных небольших и средних организаций. Так годовую подписку на 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
Для первоначальной настройки следует воспользоваться мастером установки:
Будет задано несколько простых вопросов, после чего клиент будет автоматически сконфигурирован и добавлен в автозапуск.
Обратите внимание, что по умолчанию директория диска создается в домашней папке пользователя, поэтому если вам нужно синхронизировать с облаком иные данные, то укажите путь к требуемой папке вручную.
Сразу после запуска службы начнется синхронизация. Текущий статус можно выяснить командой:
Все вроде бы хорошо, но только синхронизируется в обе стороны у нас все содержимое диска, что нужно далеко не всегда, как минимум, сразу следует исключить стандартные папки Яндекс.Диска, если вы их используете. Для этого следует создать список исключений. Откроем конфигурационный файл сервиса, который находится в домашней папке по пути ~/.config/yandex-disk/config.cfg и добавим туда строку:
exclude-dirs="Загрузки,Музыка,Скриншоты"
Путь к папкам исключениям следует указывать относительно корневой папки Яндекс.Диска, которая указана в опции:
Т.е. если у вас существует директория /backup/yandex/mydir1/mydir2, то в исключениях следует указать mydir1/mydir2. директории перечисляются через запятую, без пробелов. После внесения изменений сервис необходимо перезапустить:
yandex-disk stop
yandex-disk start
Больше параметров можно узнать в официальной документации: https://yandex.ru/support/disk/cli-clients.html
Если речь идет о настольной системе, то этого достаточно, Яндекс.Диск будет запускаться при входе в систему текущего пользователя и в фоне заниматься своим делом. Но для консольных серверов он не подходит, так как вошедших в систему пользователей там может и не быть. Для полноценной работы в этой среде нам нужно настроить работу Яндекс.Диска как системной службы.
Для начала остановим приложение:
Затем перенесем каталог настроек в директорию /etc, хранить настройки системной службы в директории пользователя — не самая лучшая идея:
После чего откроем /etc/yandex-disk/config.cfg и исправим путь к файлу токена:
Теперь создадим юнит для 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
systemctl --system daemon-reload
systemctl start yandex-disk.service
Проконтролировать ее работу можно командой:
systemctl status yandex-disk.service
Если все работает нормально, добавим службу в автозагрузку:
systemctl enable yandex-disk.service
И удалим скрипт автозагрузки приложения при входе в систему:
rm ~/.config/autostart/Yandex.Disk.desktop
Как видим, установить консольный клиент Яндекс.Диск совсем несложно, при этом по удобству использования он мало отличается от своего настольного собрата, позволяя полноценно использовать сервис даже в среде Linux-серверов.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Установка и настройка программы
Чтобы установить клиент автоматически, воспользуйтесь командой быстрой установки пакета.
Пример быстрой установки пакета
echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" | sudo tee -a /etc/apt/sources.list.d/yandex-disk.list > /dev/null && wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | sudo apt-key add - && sudo apt-get update && sudo apt-get install -y yandex-disk
Чтобы установить клиент вручную, скачайте нужную версию пакета по соответствующей ссылке ниже.
# dpkg -i yandex-disk_0.1.0.103_i386.deb
Примечание. Репозиторий автоматически устанавливается по адресу /etc/apt/sources.list.d/yandex-disk.list
# rpm -ivh yandex-disk-0.1.0.103-1.fedora.i386.rpm
Вы также можете добавить репозиторий с пакетом yandex-disk в список доступных репозиториев менеджера пакетов и установить пакет с помощью утилиты apt-get или yum .
Установка с помощью apt-get
Внимание. Сохраните копию файла /etc/apt/sources.list.d/yandex-disk.list перед внесением в него изменений.
# wget -O YANDEX-DISK-KEY.GPG http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG\n# apt-key add YANDEX-DISK-KEY.GPG\n# echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" >> /etc/apt/sources.list.d/yandex-disk.list\n# apt-get update\n# apt-get install yandex-disk
# nano /etc/yum.repos.d/yandex.repo\n# rpm --import http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG\n# yum install yandex-disk
Содержимое файла yandex.repo :
[yandex]\nname=Yandex\nfailovermethod=priority\nbaseurl=http://repo.yandex.ru/yandex-disk/rpm/stable/$basearch/\nenabled=1\nmetadata_expire=1d\ngpgcheck=1\ngpgkey=http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
Мастер начальной настройки
Вы можете выполнить начальную настройку клиента с помощью команды setup :
Введите название каталога для хранения локальной копии Диска. Если вы оставите название пустым, в домашнем каталоге будет создана папка Yandex.Disk .
После того как мастер завершит работу, в каталоге ~/.config/yandex-disk будет создан файл конфигурации config.cfg.
# Путь к файлу с данными авторизации\nauth="/home/user/.config/yandex-disk/passwd"\n\n# Каталог для хранения локальной копии Диска.\ndir="/home/user/myDisk"\n\n# Не синхронизировать указанные каталоги.\n#exclude-dirs="exclude/dir1,exclude/dir2,path/to/another/exclude/dir"\n\n# Указать прокси-сервер. Примеры:\n#proxy=https,127.0.0.1,80\n#proxy=https,127.0.0.1,80,login,password\n#proxy=https,127.0.0.1,443\n#proxy=socks4,my.proxy.local,1080,login,password\n#proxy=socks5,my.another.proxy.local,1081\n#proxy=auto\n#proxy=no
Восстановить Диск
Чтобы восстановить Диск после переустановки операционной системы, смены жёсткого диска или удаления программы:
Выполните настройку клиента. Если на вашем компьютере остались старые файлы Диска, они автоматически синхронизируются с сервером.
Команды и параметры
При вводе команды вы можете задать имя файла для хранения токена и путь к нему (FILE). Если дополнительные параметры не будут указаны, для хранения токена будет создан файл passwd в каталоге ~/.config/yandex-disk .
Вводить логин и пароль в клиенте не нужно. После вызова команды Диск предложит вам открыть определенную страницу в браузере и ввести там уникальный код.
start — запустить демон и синхронизировать все папки, кроме указанных в списке исключений exclude-dirs.
status — отобразить статус работы демона (состояние синхронизации, ошибки синхронизации, список синхронизированных файлов, общее и свободное пространство на Диске).
$ yandex-disk publish [OPTION] FILE
$ yandex-disk unpublish FILE
Дополнительные параметры [OPTION]
Указать файл конфигурации. По умолчанию используется файл config.cfg в каталоге ~/.config/yandex-disk .
Указать каталог для хранения локальной копии Диска. Если его название не было задано при выполнении начальной настройки, по умолчанию будет использоваться каталог ~/Yandex.Disk .
Указать файл с данными авторизации. По умолчанию используется файл passwd , который создается с помощью команды token или мастера начальной настройки и хранится в каталоге ~/.config/yandex-disk .
Не синхронизировать указанные каталоги. Чтобы настройка действовала всегда, каталоги необходимо добавить в список исключений exclude-dirs в файле config.cfg . Чтобы настройка действовала корректно, названия исключаемых директорий нужно перечислять через запятую, без пробелов.
Запретить изменение файлов на сервере Диска и выполнить синхронизацию только в локальной копии. При возникновении конфликтов синхронизации локальные файлы будут переименованы. Если дополнительно указан параметр —overwrite , локальные файлы будут перезаписаны.
При синхронизации с сервером разрешить перезапись изменений, сделанных в локальной копии Диска. Используется вместе с параметром —read-only .
Запустить демон без возврата управления в консоль. Чтобы вернуть управление, демон необходимо остановить, запустив в другой консоли команду yandex-disk stop или закрыв текущую консоль.
Если используется этот параметр, приложение не читает файл конфигурации. Поэтому все необходимые настройки нужно вводить через командную строку. Так, параметру exclude-dirs соответствует аргумент —exclude-dirs .
$ yandex-disk --no-daemon --dir=/root/Yandex.Disk --exclude-dirs=DO_NOT_SYNC,temp
Примечание. При использовании —no-daemon не нужно указывать команду start : в этом режиме все команды игнорируются.
Настроить прокси-сервер. Допустимые параметры: