У Яндекс.Диск есть вполне хороший консольный клиент для Linux. Устанавливается он по инструкции из справки. Всё своё добро хранит в домашнем каталоге, может работать в фоне и получать свои настройки из параметров командной строки.
Последний пункт меня как раз и заинтересовал.
В самом клиенте нет жестко прописанных путей, по которым он ищет свои конфиги. А это значит, что можно попробовать запустить несколько клиентов параллельно.
Делал я подобное с помощью юнитов-шаблонов в systemd.
Юнит имеет такой вид:
$ systemctl cat yandex-disk@ # /lib/systemd/system/yandex-disk@.service [Unit] Description=Yandex Disk console client for %i Requires=network.target [Service] Type=forking # От имени этого пользователя будет работать сервис User=share Group=share # %i будет заменено на название экземпляра ExecStart=/usr/bin/yandex-disk start -c /var/lib/yandex-disk/%i/config.cfg RestartSec=60 Restart=always [Install] WantedBy=multi-user.target
Чтобы всё это заработало, надо проделать следующие шаги:
Создать каталог внутри "/var/lib/yandex-disk/" с названием будущего экземпляра, например, "yandex-test".
Создать каталог, который будет синхронизироваться с облаком, например, "/media/hdd/yandex".
Проследить, чтобы у пользователя, который указан в юните, были права на чтение первого каталога и на запись во второй.
Получить токен для авторизации:
$ sudo -u share yandex-disk token --dir /media/hdd/yandex your-username /var/lib/yandex-disk/yandex-test/passwd # your-username - имя пользователя без @yandex.ru # Пароль будет запрошен в процессе
Создать файл "config.cfg" внутри каталога "/var/lib/yandex-disk/yandex-test/" такого содержания:
auth="/var/lib/yandex-disk/yandex-test/passwd" dir="/media/hdd/yandex" proxy="no"
Теперь можно запустить сервис и добавить его в автозапуск:
sudo systemctl start yandex-disk@yandex-test sudo systemctl start yandex-disk@yandex-test
Если в каталоге начали появляться файлы, то память меня не подвела, и я написал инструкцию правильно.
Несколько примечаний.
Каталог для синхронизации нужно создавать до получения токена и указывать его в параметрах обязательно. Похоже, что клиент записывает не только файл с ключом, но и что-то делает с каталогом при этом.
По команде "yandex-disk status" будет отображаться информации только о первом запущенном экземпляре.