Jump to content
XPEnology Community

Recommended Posts

Posted

Все мы знаем что 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 автоматически без принудительной переиндексации.

Пробуйте, отписывайтесь если получиться может кто что доработает, так же выкладывайте. :razz:

  • 1 year later...
Posted (edited)

Нашел схожее решение, но более простое.

Проверенно на 6.2.1 - файл скачаный transmission в папку video определяется VS автоматически.

Edited by deloza

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...