synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяPhotoStation › посмотреть, что именно сейчас индексируется

посмотреть, что именно сейчас индексируется

SergeS · 07.10.2015

А можно как-нибудь посмотреть, что именно сейчас индексируется, какой фолдер?

Ну, я уж не спрашиваю про %% выполненной работы :-)))

 

п.с. Я говорю именно об indexing media files, который в control panel, а не об вращающемся кружочке в верхней строке DSM...

polanat · 07.10.2015
А можно как-нибудь посмотреть, что именно сейчас индексируется, какой фолдер?

Ну, я уж не спрашиваю про %% выполненной работы :-)))

 

п.с. Я говорю именно об indexing media files, который в control panel, а не об вращающемся кружочке в верхней строке DSM...

Может Вам проще индексировать избирательно? По крайней мере так быстрее, чем целиком. Про детали писал здесь -> Сообщение #51

 

PS По сино-плееру так с ходу и не подскажу, но процесс индексации в том же miniDLNA наблюдать можно ...

SergeS · 07.10.2015
Может Вам проще индексировать избирательно? По крайней мере так быстрее, чем целиком. Про детали писал здесь -> Сообщение #51

 

PS По сино-плееру так с ходу и не подскажу, но процесс индексации в том же miniDLNA наблюдать можно ...

 

Конечно так проще... Даже больше того - я вообще стараюсь ничего не индексировать самому, пусть система индексирует по мере добавления...

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

 

Индексация фильмов меня мало волнует, больше интересна индексация фотостанции...

Кстати, тут смежный вопрос, независимо от оригинального - если я, скажем, запустил свой скрипт, который чего-то там накопировал снаружи в фотостанцию, скажем - создал несколько папок, скопировал туда несколько фоток, да еще скопировал несколько фоток в уже имеющиеся фотостанционные папки, поудалял несколько фоток из имеющихся папок, да и папок целиком тоже парочку удалил... Индексация при этом авоматически не запускается, так как фотостанция не отслеживает внутренние скрипты наса. Внимание, вопрос: как в этом случае правильно запускать индексацию ручками, что бы избежать излишней индексации того, что не поменялось?

 

Мне в голову приходит только довольно сложный вариант с записью в отдельный файл списка всех уникальных папок, где были изменения и потом натравливании sinoindex на этот список. Есть более правильный (простой) вариант?

 

polanat · 07.10.2015
(простой) вариант?

"synoindex -R photo" заскедьюлить на ночь (дёшево и сердито ;) )

SergeS · 07.10.2015
"synoindex -R photo" заскедьюлить на ночь (дёшево и сердито ;) )

 

Вот как раз этого и хотелось бы избежать. Да еще и по планировщику... остряк, блин...

SergeS · 21.02.2016
А можно как-нибудь посмотреть, что именно сейчас индексируется, какой фолдер?

Ну, я уж не спрашиваю про %% выполненной работы :-)))

 

п.с. Я говорю именно об indexing media files, который в control panel, а не об вращающемся кружочке в верхней строке DSM...

 

Вот попалась старая тема, сам спросил - сам же и отвечу...

Идея взята отсюда: link

А вот два скрипта на основе этой идеи, один - cgi, второй - php, оба работают через вебсервер и позволяют видеть текущее количество отиндексированных items и последнее отиндексированное имя в четырех категориях: photo, music, video and directories.

У cgi варианта есть проблема - русские имена файлов отображаются крокозябликами, если кто-то знает, как это поправить, дайте знать...

 

cgi:

#!/bin/sh
echo "Content-type: text/html"
echo ""
echo "<html>"
echo "<head></head>"
echo "<body>"
echo "<h3>Mediaserver indexing progress (cgi).</h3>"
# link: http://www.mcleanit.ca/blog/synology-check-index-progress/


## variables
dbname="mediaserver"
username="postgres"
dbtable="photo"
host="localhost"
listOfDBNames="photo music video directory"

#------Sample how to read pgsql-select to variable ----
#vartest=$(psql -A -t -X -h $host -d $dbname -U $username -c "SELECT COUNT(*) FROM ${dbtable};")
#-------

#### function echo the result of statement, statement is a first parameter
postgresql_func()
{
retval=$(psql -A -t -X -h $host -d $dbname -U $username -c "$1")
echo "$retval"
}
#--end of function ----

#-- begin --
for databaseName in $listOfDBNames
do
  my_res=$(postgresql_func "SELECT COUNT(*) FROM $databaseName")
  echo "Indexed $databaseName count: <b>"$my_res"</b> <br>"

  my_res=$(postgresql_func "SELECT path FROM $databaseName WHERE id = (SELECT MAX(id) FROM $databaseName);")
  echo "Last Indexed $databaseName path: <b>"$my_res"</b> <br> <br>"
done

echo "</body>"
echo "</html>"

------------------------------------------------------

php:

<html> 
<head></head> 
<body> 
<h3>Mediaserver indexing progress (php).</h3>
<?php 
// link: http://www.mcleanit.ca/blog/synology-check-index-progress/
$dbname="mediaserver";
$username = "postgres"; 
$dbtable="photo";
$host = "localhost";
$listOfDBNames = array("photo", "music", "video", "directory");   

try
  {
  $db = new PDO("pgsql:host=$host; dbname=$dbname", $username);
  $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $db->exec("SET CLIENT_ENCODING TO 'UTF8'");
  }
    catch (PDOException $e)
      {
      print "Error: " . $e->getMessage() . "<br/>";
      die();
      }

try 
  {
  foreach ($listOfDBNames as $databaseName) 
    {
    $sql = $db->query( "SELECT COUNT(*) FROM $databaseName;" );
    while( $row = $sql->fetch( PDO::FETCH_NUM ) ) {echo "Indexed $databaseName count: <b>".$row[0]."</b> <br/>\n";}
    $sql = $db->query( "SELECT path FROM $databaseName WHERE id = (SELECT MAX (id) FROM $databaseName);" );
    while( $row = $sql->fetch( PDO::FETCH_NUM ) ) {echo "Last Indexed $databaseName path: <b>".$row[0]."</b> <br/><br/>\n";}
    }
  }
    catch( PDOException $e ) 
      {
      print "Error: " . $e->getMessage() . "<br/>";
      }
?> 
</body> 
</html>