Skip to content

Latest commit

 

History

History
128 lines (105 loc) · 5.98 KB

yandex.adoc

File metadata and controls

128 lines (105 loc) · 5.98 KB

1. yandex-disk

Будет использоваться для хранения и доставки

  • музыки

  • торрент файлов

1.1. по проще

Заметки по установке и первичной настройке: https://yandex.ru/support/disk-desktop-linux/start.html

Придется запомнить только путь до локального каталога /srv/dev-disk-by-uuid-5df3d4ad-0414-4018-a3c9-bd248ee5fa4c/yandex и сказать нет автозапуску - его настроим сами.

конфиг обычно находится по адресу ~/.config/yandex-disk/config.cfg Не будет его никуда двигать. Нужно только стремительно остановить синхронизацию yandex-disk stop и в конфиге исключить лишние каталоги. Но для автозапуска нужен системный скрипт, который от вашего пользователя будет запускать его.

1.2. systemd ?

Проверка синхронизации yandex-disk status покажет не только статус, но и последние синхронизированные файлы. Но с переходом на systemd все сильно осложняется.

Например, если нужно подебажить, то можно только изучать логи journalctl -f -u yandex-disk.service, которые скорее всего не показывают причины ошибки. Можно найти процесс systemctl show --property MainPID --value yandex-disk.service берем его пид и подставляем в cat /proc/PID/cmdline и смотрим не накосячили ли где.

Добраться до уже запущенного процесса и обратиться к нему за статусом - не возможно, даже если отыскать его пид. На пример, когда появляются непонятные лаги при изменении или удалении файлов, сложно локализовать проблему.

1.3. по старинке

через init.d!

Делаем новый конфиг sudo touch /etc/init.d/yadisk и в него закидываем конфиг

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          yandex_disk
# Required-Start:    $all
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Manage Yandex.Disk deamon
### END INIT INFO

# Various constants
user=enot

execute() {
    su -c "$1" "$user"
}

start() {
    echo "Starting Yandex.Disk daemon..."
    execute "yandex-disk start"
}

stop() {
    echo "Stopping Yandex.Disk daemon..."
    execute "yandex-disk stop"
}

status() {
    execute "yandex-disk status"
}

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac

exit 0

и разрешаем его использование:

sudo update-rc.d yadisk defaults
sudo chmod +x /etc/init.d/yadisk
ls -la /etc/rc3.d/ | grep yadisk
# lrwxrwxrwx   1 root root   16 Mar  8 05:48 S01yadisk -> ../init.d/yadisk
sudo /etc/init.d/yadisk status
sudo service yadisk status

1.4. проброс файлов в шару

И теперь можно пробросить музыку из Диска. Легко и непринужденно можно с помощью символьных ссылок:

cd /srv/dev-disk-by-uuid-5df3d4ad-0414-4018-a3c9-bd248ee5fa4c/media/
ln -s ../yandex/Music/ music
ls -la

Но это спорное решение, так как использование комбинации символьных ссылок и шары с возможностью записи приоткрывает брешь в безопасности. Открывается возможность сделать символьную ссылку, нацеленную на файл паролей и прав в системе. По ней там права доступа у скомпрометированного пользователя. В общем, можно, но не нужно. Даже ментейнеры пакета smb по умолчанию отключили комбинацию атрибутов, позволяющие так настроить систему. Просто сделай отдельную smb шару для музыки только на чтение, нацеленный на нужный каталог. Телеки и приставки читать смогут, удалить - нет.

1.5. торрент файлы

Если вернуться к тебе симлинков, то внутри образа симлинки хоть и видны, но по ним не пройти. Испробованы и абсолютные и относительные (от каталога в media шаре и от каталога контейнеров в /var/lib/docker/containers). Единственный вариант - пробрасывать в качестве volume полный путь до каталог в yandex-disk.

Но это и довольно спорное решение. Более безопасно настроить rsync черех webUI что бы файлы с определенной маской копировались из каталога. После настройки расшаренных каталогов (через интерфейс omv) источника и приемника, в деталях задачи стоит проставить - Preserve modification times - Recurse into directories - Delete

а в экстра параметрах добавить

--remove-source-files
--include "*.torrent"