tajson Posted May 17, 2017 Share #1 Posted May 17, 2017 Все мы знаем что synology не умеет сама индексировать файлы на лету! Для этого были разработаны два пакета: Media Indexer и inotify-tools и доступны к скачиванию по репозиторию http://synology.francis-besset.com/, с помощью которых все само обновлялось и было очень удобно. Но что делать если нет возможности или нет разработанных под Ваш сервак этих файлов, именно с этим я и сталкнулся установив DS3617xs-v1.02a2--DSM 6.1.1-Update2!!! Поискав на прасторах инета наткнулся на несколько забугорных сайтов с теми же проблемами. Вот собрав все в кучу, предоставляю Вам для последующих проб и доработок этого процесса информацию и решение, как на сегодняшний день возможно единственно-правильное. Что требуется, а именно - нужно создать скрипт и добавить демона для индексации, для которого необходимо выполнить действие с базой данных и индексирование мультимедиа при полной индексации автоматов. Для чего нужен скрипт? Чтобы это обновление Auto update update индексировало любые действия с файлами: (по текущему inotify synoinex не может индексировать). Например, если вы копируете в мультимедийные директории из, transmission, video, photo, music таких как mkv, avi , mp3 -- файлы остаются незамеченными, а при автоматической индексации эти фалы становяться видны в программах таких как Video Station, Photo Station, сервер мультимедиа, и т/д. Переходим к практике: КАК: Шаг 1: Добавьте этот sh в index`s для старта synology Создать файл с текстом в пути: /usr/local/etc/rc.d/S92_mediaindex.sh с chrown do "exec" right`s #!/bin/sh # # update all indexes in db on syno # NO MORE FULL reindex and etc # by manslife 2010-11-13 case "$1" in start|"") # # input dirs mkdir -p /tmp/mediaindex music="/volume1/music" video="/volume1/video" photo="/volume1/photo" # Setup find correctly. export IFS=$'\n' #sleep 10 echo `date` "Autoindex start indexing: " >> /var/log/messages # Loop through our array. for x in $music $video $photo do if [ "$x" == "/volume1/music" ]; then nn="music" fi if [ "$x" == "/volume1/video" ]; then nn="video" fi if [ "$x" == "/volume1/photo" ]; then nn="photo" fi # Find all directories & subdirectories /opt/bin/find $x -type d -wholename '*' ! -wholename */@eaDir* > /tmp/mediaindex/$nn.dir /opt/bin/sort /tmp/mediaindex/$nn.dir -o /tmp/mediaindex/$nn.dir /usr/syno/pgsql/bin/psql mediaserver admin -tA -c "select path from directory where path like '$x%'" > /tmp/mediaindex/$nn-pgsql.dir /opt/bin/sort /tmp/mediaindex/$nn-pgsql.dir -o /tmp/mediaindex/$nn-pgsql.dir # Find all Files and exclude win files /opt/bin/find $x -type f -wholename '*' ! -wholename */@eaDir* ! -name '*.ini' ! -name '*.db' ! -name '*.sys' ! -name '*.zip' ! -name '*.ra?' > /tmp/mediaindex/$nn.file /opt/bin/sort /tmp/mediaindex/$nn.file -o /tmp/mediaindex/$nn.file /usr/syno/pgsql/bin/psql mediaserver admin -tA -c "select path from $nn where path like '$x%'" > /tmp/mediaindex/$nn-pgsql.file /opt/bin/sort /tmp/mediaindex/$nn-pgsql.file -o /tmp/mediaindex/$nn-pgsql.file # Looking + - /opt/bin/diff /tmp/mediaindex/$nn.dir /tmp/mediaindex/$nn-pgsql.dir |grep "<"|cut -c3-9000 > /tmp/mediaindex/$nn-dif-ON.dir /opt/bin/diff /tmp/mediaindex/$nn.file /tmp/mediaindex/$nn-pgsql.file |grep "<"|cut -c3-9000 > /tmp/mediaindex/$nn-dif-ON.file /opt/bin/diff /tmp/mediaindex/$nn.dir /tmp/mediaindex/$nn-pgsql.dir |grep ">"|cut -c3-9000 > /tmp/mediaindex/$nn-dif-OFF.dir /opt/bin/diff /tmp/mediaindex/$nn.file /tmp/mediaindex/$nn-pgsql.file |grep ">"|cut -c3-9000 > /tmp/mediaindex/$nn-dif-OFF.file ####################################### # REMOVE all needed directories & subdirectories for i in $( /opt/bin/cat /tmp/mediaindex/$nn-dif-OFF.dir ) do /usr/syno/bin/synoindex -D "$i" > /dev/null echo `date` "Autoindex REMOVE DIRs: " $i >> /var/log/messages done # REMOVE all needed files for i in $( /opt/bin/cat /tmp/mediaindex/$nn-dif-OFF.file) do /usr/syno/bin/synoindex -d "$i" > /dev/null echo `date` "Autoindex REMOVE FILES: " $i >> /var/log/messages done # ADD all needed directories & subdirectories for i in $( /opt/bin/cat /tmp/mediaindex/$nn-dif-ON.dir ) do /usr/syno/bin/synoindex -A "$i" > /dev/null echo `date` "Autoindex ADD DIRs: " $i >> /var/log/messages done # ADD all needed files for i in $( /opt/bin/cat /tmp/mediaindex/$nn-dif-ON.file) do /usr/syno/bin/synoindex -a "$i" > /dev/null echo `date` "Autoindex ADD FILES: " $i >> /var/log/messages done done rm -fr /tmp/mediaindex echo `date` "Autoindex END indexing: " >> /var/log/messages ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) # ;; *) echo "Usage: inotifywait.sh [start|stop]" >&2 exit 3 ;; esac : Шаг №2: для полноавтоматического демона необходимо установить «inotify-tools» Загрузить http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz Распаковать файл, скопировать каталог в synology и запустить через консоль: /Путь к распакованному каталогу / configure --prefix = / usr && make && su -c 'make install' Теперь создайте файл с текстом по пути: /usr/local/etc/rc.d/S93_mediaindexdm.sh #!/bin/sh # Looking FULL changes case "$1" in start|"") #NEW Variant: dirs ends white slashes /usr/bin/inotifywait -mrcq -e close_write -e moved_to -e moved_from -e move -e create -e delete -e unmount /volume1/music /volume1/photo /volume1/video | while read -r; do eval "$(echo "$REPLY" | sed -r 's#'\''#'\'\\\\\'\''#; s#^("([^"]*)"|([^"][^,]*)),("([^"]*)"|([^"][^,]*)),("([^"]*)"|([^"][^,]*))$#file_name='\''\2\3\8\9'\''; action='\''\5\6'\''#')" #if [ "$action" = "CREATE" ] ; then #echo '0 NOTHING to file CREATE! ONLY on WRITE_CLOSE' #fi if [ "$action" = "CREATE,ISDIR" ] ; then /usr/syno/bin/synoindex -A "$file_name" > /dev/null echo "At `date`, Autoindex ADD DIRs: " "$file_name" >> /var/log/messages fi if [ "$action" = "CLOSE_WRITE,CLOSE" ] ; then /usr/syno/bin/synoindex -a "$file_name" > /dev/null echo "At `date`, Autoindex ADD FILES: " "$file_name" >> /var/log/messages fi if [ "$action" = "DELETE" ] ; then /usr/syno/bin/synoindex -d "$file_name" > /dev/null echo "At `date`, Autoindex REMOVE FILES: " "$file_name" >> /var/log/messages fi if [ "$action" = "DELETE,ISDIR" ] ; then /usr/syno/bin/synoindex -D "$file_name" > /dev/null echo "At `date`, Autoindex REMOVE DIRs: " "$file_name" >> /var/log/messages fi if [ "$action" = "MOVED_FROM,ISDIR" ] ; then /usr/syno/bin/synoindex -D "$file_name" > /dev/null echo "At `date`, Autoindex REMOVE DIRs: " "$file_name" >> /var/log/messages fi if [ "$action" = "MOVED_FROM" ] ; then /usr/syno/bin/synoindex -d "$file_name" > /dev/null echo "At `date`, Autoindex REMOVE FILES: " "$file_name" >> /var/log/messages fi if [ "$action" = "MOVED_TO,ISDIR" ] ; then /usr/syno/bin/synoindex -A "$file_name" > /dev/null echo "At `date`, Autoindex ADD DIRs: " "$file_name" >> /var/log/messages fi if [ "$action" = "MOVED_TO" ] ; then /usr/syno/bin/synoindex -a "$file_name" > /dev/null echo "At `date`, Autoindex ADD FILES: " "$file_name" >> /var/log/messages fi done & ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) killall inotifywait ;; *) echo "Usage: inotifywait.sh [start|stop]" >&2 exit 3 ;; esac : После чего, индексация работает автоматически, а та же с помощью этих демонов HDD DISK `s на Syno переходят в спящий режим без проблем. Испробовано на DS3617xs-v1.02a2--DSM 6.1.1-Update все вроде работает, видео фаил добавился в Video Station автоматически без принудительной переиндексации. Пробуйте, отписывайтесь если получиться может кто что доработает, так же выкладывайте. Quote Link to comment Share on other sites More sharing options...
deloza Posted January 20, 2019 Share #2 Posted January 20, 2019 (edited) Нашел схожее решение, но более простое. Проверенно на 6.2.1 - файл скачаный transmission в папку video определяется VS автоматически. Edited January 20, 2019 by deloza Quote Link to comment Share on other sites More sharing options...
Olegin Posted January 21, 2019 Share #3 Posted January 21, 2019 И совсем простое решение. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.