Minidnla — различия между версиями

Материал из Я Админ
Перейти к: навигация, поиск
(Новая страница: « Category:Linux»)
 
Строка 1: Строка 1:
 +
sudo apt install minidlna
 +
 +
Настройка minidlna — сервера Проверим init-скрипт по пути /etc/init.d/minidlna Если файл отсутствует, то создадим его и вставим в него следующий листинг: #!/bin/sh # # MiniDLNA initscript # # Based on the mediatomb debian package. # Original authors: Tor Krill # Leonhard Wimmer # Andres Mejia # # Modified by: Benoit Knecht # ### BEGIN INIT INFO # Provides: minidlna # Required-Start: $network $local_fs $remote_fs # Required-Stop:: $network $local_fs $remote_fs # Should-Start: $all # Should-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start minidlna at boot time # Description: Manage the minidlna daemon, a DLNA/UPnP-AV media server. ### END INIT INFO unset USER # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="DLNA/UPnP-AV media server" NAME=minidlnad DAEMON=/usr/local/sbin/minidlnad PIDDIR=/run/$NAME PIDFILE=$PIDDIR/$NAME.pid SCRIPTNAME=/etc/init.d/minidlna DEFAULT=/etc/default/minidlna # Exit if the package is not installed [ -x $DAEMON ] || exit 0 # Read configuration variable file if it is present [ -r $DEFAULT ] && . $DEFAULT # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # Do not start the daemon if NO_START is enabled in DEFAULT if [ "$START_DAEMON" != "yes" ] && [ "$1" != "stop" ]; then log_warning_msg "$NAME: Not starting $DESC." log_warning_msg "$NAME: Disabled in $DEFAULT." exit 0 fi # Set the default configuration file if [ -z $CONFIGFILE ]; then CONFIGFILE=/etc/minidlna.conf fi # Set the default log file if [ -z $LOGFILE ]; then LOGFILE=/var/log/minidlna.log fi # Run as `minidlna' if USER is not specified or is `root' if [ -z $USER ]; then USER=minidlna fi # If no group is specified, use USER if [ -z $GROUP ]; then GROUP=$USER fi DAEMON_ARGS="-f $CONFIGFILE -P $PIDFILE $DAEMON_OPTS" # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started touch $LOGFILE && chown $USER:$GROUP $LOGFILE || return 2 if [ ! -d $PIDDIR ]; then mkdir $PIDDIR || return 2 fi chown $USER:$GROUP $PIDDIR || return 2 start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $USER:$GROUP --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $USER:$GROUP --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -rf $PIDDIR return "$RETVAL" } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME" && exit 0 || exit $? ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) if [ "$1" = "force-reload" ]; then # Rescan the collection DAEMON_ARGS="$DAEMON_ARGS -R" fi do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac : После этого даем права на запуск скрипта: sudo chmod 755 /etc/init.d/minidlna Активируем запуск init-скрипта: sudo update-rc.d minidlna defaults По умолчанию служба запускается под пользователем minidlna, нам нужно создать соответствующую учетную запись: sudo adduser --system --home /var/lib/minidlna --group --gecos "MiniDLNA server" minidlna Далее проверяем параметры init-скрипта etc/default/minidlna: sudo nano /etc/default/minidlna Обычно корректировка не требуется. Если файл отсутствует копируем данный листинг: # Defaults for minidlna initscript # sourced by /etc/init.d/minidlna # installed at /etc/default/minidlna by the maintainer scripts # These options can be set to modify the behavior of the minidlna init script. # The options commented out show the default values. # Start the daemon if set to "yes" START_DAEMON="yes" # Path to the configuration file CONFIGFILE="/etc/minidlna.conf" # Path to the log file #LOGFILE="/var/log/minidlna.log" # User and group the daemon should run as #USER="minidlna" #GROUP="minidlna" # Additional options that are passed to the daemon DAEMON_OPTS="" далее рестарт init-скрипта sudo /etc/init.d/minidlna restart Конфигурация MiniDLNA Правим файл конфигурации: sudo nano /etc/minidlna.conf Как минимум, потребуется задать путь к папке с медиа-файлами, параметр: media_dir. Также можно задать имя сервера, отображаемое клиентом, параметр: friendly_name. В случае если наш DLNA-сервер по совместительству является интернет-шлюзом, также необходимо задать внутренний сетевой интерфейс, параметр: network_interface в моем случае настроен сетевой мост между LAN и WiFi интерфейсом под названием – br0. Параметры в комментариях файла конфигурации содержат значения по умолчанию. # Порт сервера port=8200 # Привязка к сетевому интерфейсу # Можно задать несколько интерфейсов # в формате network_interface=eth0,eth1 network_interface=br0 # Имя пользователя или UID, под которым будет работать служба # Добавлен в версии 1.1.0 # В Debian задается в параметрах init-скрипта #user=minidlna # Путь к папке с медиа-файлами # Для сканирования нескольких папок, укажите несколько параметров media_dir # Чтобы сканировать файлы определенного типа, укажите соответствующий префикс: # A - аудио: media_dir=A,/home/jmaggard/Music # V - видео: media_dir=V,/home/jmaggard/Videos # P - изображения: media_dir=P,/home/jmaggard/Pictures # Начиная с версии 1.1.0, можно задать несколько типов: # PV - изображения и видео: media_dir=AV,/var/lib/minidlna/digital_camera # # При изменении параметра, потребуется повторное сканирование файлов. # Необходимо выполнить команду "service minidlna force-reload" от имени root. # Начиная с версии 1.1.0, при изменении параметра, сканирование выполняется автоматически. media_dir=A,/home/Music media_dir=V,/home/Films media_dir=P,/home/Foto # Имя DLNA-сервера, отображаемое клиентом # По умолчанию: "$HOSTNAME:$USER" friendly_name=DLNA_Ubuntu # Путь к папке для хранения базы данных и кэша обложек альбомов db_dir=/var/lib/minidlna # Путь к папке с лог-файлами log_dir=/var/log # Уровень детальности лога # В формате log_level=источник1,источник2=значение1,источник3,источник4=значение2 ... # Доступные источники: "general", "artwork", "database", "inotify", "scanner", "metadata", "http", "ssdp", "tivo" # Возможные значения: "off", "fatal", "error", "warn", "info" or "debug" #log_level=general,artwork,database,inotify,scanner,metadata,info,ssdp,tivo=warn # Перечень имен файлов-обложек альбомов, разделитель: "/" album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg # Автообнаружение новых файлов # Включено по умолчанию #inotify=yes # Поддержка устройств TiVo #enable_tivo=no # Строго следовать DLNA-стандарту # Использовать серверное масштабирование для очень больших JPEG-изображений # Что может снизить скорость их обработки. #strict_dlna=yes # Адрес веб-страницы устройства # По умолчанию IP-адрес и заданный порт сервера #presentation_url=http://www.mylan/index.php # Интервал абноружения новых файлов, в секундах notify_interval=120 # Серийный номер и номер модели DLNA-сервера, сообщаемый клиенту serial=12345678 model_number=3 # Путь к сокету MiniSSDPd, если установлен # Требуется для обеспечения работы нескольких DLNA/UPnP служб на одном сервере #minissdpdsocket=/run/minissdpd.sock # Контейнер, используемый в качестве корневой папки для клиентов # * "." - стандартный контейнер # * "B" - "Обзор папки" # * "M" - "Музыка" # * "V" - "Видео" # * "P" - "Изображения" # Если задано "B" и клиент представится как аудиоплеер, в качестве корня будет использована папка "Music/Folders" #root_container=. # Всегда использовать заданный критерий сортировки, вместо значения, запрошенного клиентом #force_sort_criteria=+upnp:class,+upnp:originalTrackNumber,+dc:title # Максимальное число одновременных подключений # Учтите: многие клиенты открывают несколько подключений одновременно max_connections=20 # Параметр для отображения директорий подробно или нет disable_extended_directories=yes Замечания: Для работы inotify-параметров файла конфигурации, связанных с добавлением файлов в базу необходима установка пакета inotify-tools. Следует помнить, что механизм inotify не работает для удалённых сетевых (не локальных) файлах и папках. Устанавлисваем inotify-tools: sudo apt install inotify-tools -y Запускаем службу: /etc/init.d/minidlna start или sudo service minidlna force-reload Проверяем, работает ли служба, также смотрим параметры запуска: ps ax | grep minidlna Проверяем, слушается ли порт: sudo ss -4lnp | grep minidlna Проверяем лог: cat /var/log/minidlna.log
 +
 +
Источник: https://pro-gram.ru/install-minidlna-ununtu-server.html
 +
Взято с сайта © Pro-Gram.ru
 +
  
 
[[Category:Linux]]
 
[[Category:Linux]]

Версия 23:58, 17 ноября 2017

sudo apt install minidlna

Настройка minidlna — сервера Проверим init-скрипт по пути /etc/init.d/minidlna Если файл отсутствует, то создадим его и вставим в него следующий листинг: #!/bin/sh # # MiniDLNA initscript # # Based on the mediatomb debian package. # Original authors: Tor Krill # Leonhard Wimmer # Andres Mejia # # Modified by: Benoit Knecht # ### BEGIN INIT INFO # Provides: minidlna # Required-Start: $network $local_fs $remote_fs # Required-Stop:: $network $local_fs $remote_fs # Should-Start: $all # Should-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start minidlna at boot time # Description: Manage the minidlna daemon, a DLNA/UPnP-AV media server. ### END INIT INFO unset USER # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="DLNA/UPnP-AV media server" NAME=minidlnad DAEMON=/usr/local/sbin/minidlnad PIDDIR=/run/$NAME PIDFILE=$PIDDIR/$NAME.pid SCRIPTNAME=/etc/init.d/minidlna DEFAULT=/etc/default/minidlna # Exit if the package is not installed [ -x $DAEMON ] || exit 0 # Read configuration variable file if it is present [ -r $DEFAULT ] && . $DEFAULT # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # Do not start the daemon if NO_START is enabled in DEFAULT if [ "$START_DAEMON" != "yes" ] && [ "$1" != "stop" ]; then log_warning_msg "$NAME: Not starting $DESC." log_warning_msg "$NAME: Disabled in $DEFAULT." exit 0 fi # Set the default configuration file if [ -z $CONFIGFILE ]; then CONFIGFILE=/etc/minidlna.conf fi # Set the default log file if [ -z $LOGFILE ]; then LOGFILE=/var/log/minidlna.log fi # Run as `minidlna' if USER is not specified or is `root' if [ -z $USER ]; then USER=minidlna fi # If no group is specified, use USER if [ -z $GROUP ]; then GROUP=$USER fi DAEMON_ARGS="-f $CONFIGFILE -P $PIDFILE $DAEMON_OPTS" # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started touch $LOGFILE && chown $USER:$GROUP $LOGFILE || return 2 if [ ! -d $PIDDIR ]; then mkdir $PIDDIR || return 2 fi chown $USER:$GROUP $PIDDIR || return 2 start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $USER:$GROUP --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $USER:$GROUP --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -rf $PIDDIR return "$RETVAL" } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME" && exit 0 || exit $? ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) if [ "$1" = "force-reload" ]; then # Rescan the collection DAEMON_ARGS="$DAEMON_ARGS -R" fi do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac : После этого даем права на запуск скрипта: sudo chmod 755 /etc/init.d/minidlna Активируем запуск init-скрипта: sudo update-rc.d minidlna defaults По умолчанию служба запускается под пользователем minidlna, нам нужно создать соответствующую учетную запись: sudo adduser --system --home /var/lib/minidlna --group --gecos "MiniDLNA server" minidlna Далее проверяем параметры init-скрипта etc/default/minidlna: sudo nano /etc/default/minidlna Обычно корректировка не требуется. Если файл отсутствует копируем данный листинг: # Defaults for minidlna initscript # sourced by /etc/init.d/minidlna # installed at /etc/default/minidlna by the maintainer scripts # These options can be set to modify the behavior of the minidlna init script. # The options commented out show the default values. # Start the daemon if set to "yes" START_DAEMON="yes" # Path to the configuration file CONFIGFILE="/etc/minidlna.conf" # Path to the log file #LOGFILE="/var/log/minidlna.log" # User and group the daemon should run as #USER="minidlna" #GROUP="minidlna" # Additional options that are passed to the daemon DAEMON_OPTS="" далее рестарт init-скрипта sudo /etc/init.d/minidlna restart Конфигурация MiniDLNA Правим файл конфигурации: sudo nano /etc/minidlna.conf Как минимум, потребуется задать путь к папке с медиа-файлами, параметр: media_dir. Также можно задать имя сервера, отображаемое клиентом, параметр: friendly_name. В случае если наш DLNA-сервер по совместительству является интернет-шлюзом, также необходимо задать внутренний сетевой интерфейс, параметр: network_interface в моем случае настроен сетевой мост между LAN и WiFi интерфейсом под названием – br0. Параметры в комментариях файла конфигурации содержат значения по умолчанию. # Порт сервера port=8200 # Привязка к сетевому интерфейсу # Можно задать несколько интерфейсов # в формате network_interface=eth0,eth1 network_interface=br0 # Имя пользователя или UID, под которым будет работать служба # Добавлен в версии 1.1.0 # В Debian задается в параметрах init-скрипта #user=minidlna # Путь к папке с медиа-файлами # Для сканирования нескольких папок, укажите несколько параметров media_dir # Чтобы сканировать файлы определенного типа, укажите соответствующий префикс: # A - аудио: media_dir=A,/home/jmaggard/Music # V - видео: media_dir=V,/home/jmaggard/Videos # P - изображения: media_dir=P,/home/jmaggard/Pictures # Начиная с версии 1.1.0, можно задать несколько типов: # PV - изображения и видео: media_dir=AV,/var/lib/minidlna/digital_camera # # При изменении параметра, потребуется повторное сканирование файлов. # Необходимо выполнить команду "service minidlna force-reload" от имени root. # Начиная с версии 1.1.0, при изменении параметра, сканирование выполняется автоматически. media_dir=A,/home/Music media_dir=V,/home/Films media_dir=P,/home/Foto # Имя DLNA-сервера, отображаемое клиентом # По умолчанию: "$HOSTNAME:$USER" friendly_name=DLNA_Ubuntu # Путь к папке для хранения базы данных и кэша обложек альбомов db_dir=/var/lib/minidlna # Путь к папке с лог-файлами log_dir=/var/log # Уровень детальности лога # В формате log_level=источник1,источник2=значение1,источник3,источник4=значение2 ... # Доступные источники: "general", "artwork", "database", "inotify", "scanner", "metadata", "http", "ssdp", "tivo" # Возможные значения: "off", "fatal", "error", "warn", "info" or "debug" #log_level=general,artwork,database,inotify,scanner,metadata,info,ssdp,tivo=warn # Перечень имен файлов-обложек альбомов, разделитель: "/" album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg # Автообнаружение новых файлов # Включено по умолчанию #inotify=yes # Поддержка устройств TiVo #enable_tivo=no # Строго следовать DLNA-стандарту # Использовать серверное масштабирование для очень больших JPEG-изображений # Что может снизить скорость их обработки. #strict_dlna=yes # Адрес веб-страницы устройства # По умолчанию IP-адрес и заданный порт сервера #presentation_url=http://www.mylan/index.php # Интервал абноружения новых файлов, в секундах notify_interval=120 # Серийный номер и номер модели DLNA-сервера, сообщаемый клиенту serial=12345678 model_number=3 # Путь к сокету MiniSSDPd, если установлен # Требуется для обеспечения работы нескольких DLNA/UPnP служб на одном сервере #minissdpdsocket=/run/minissdpd.sock # Контейнер, используемый в качестве корневой папки для клиентов # * "." - стандартный контейнер # * "B" - "Обзор папки" # * "M" - "Музыка" # * "V" - "Видео" # * "P" - "Изображения" # Если задано "B" и клиент представится как аудиоплеер, в качестве корня будет использована папка "Music/Folders" #root_container=. # Всегда использовать заданный критерий сортировки, вместо значения, запрошенного клиентом #force_sort_criteria=+upnp:class,+upnp:originalTrackNumber,+dc:title # Максимальное число одновременных подключений # Учтите: многие клиенты открывают несколько подключений одновременно max_connections=20 # Параметр для отображения директорий подробно или нет disable_extended_directories=yes Замечания: Для работы inotify-параметров файла конфигурации, связанных с добавлением файлов в базу необходима установка пакета inotify-tools. Следует помнить, что механизм inotify не работает для удалённых сетевых (не локальных) файлах и папках. Устанавлисваем inotify-tools: sudo apt install inotify-tools -y Запускаем службу: /etc/init.d/minidlna start или sudo service minidlna force-reload Проверяем, работает ли служба, также смотрим параметры запуска: ps ax | grep minidlna Проверяем, слушается ли порт: sudo ss -4lnp | grep minidlna Проверяем лог: cat /var/log/minidlna.log

Источник: https://pro-gram.ru/install-minidlna-ununtu-server.html Взято с сайта © Pro-Gram.ru