Photo Station Indexierung per Cronjob?

Status
Für weitere Antworten geschlossen.

T4B_

Benutzer
Mitglied seit
06. Apr 2007
Beiträge
440
Punkte für Reaktionen
0
Punkte
0
Bezug nehmend auf ein anderes Problem würde mich interessieren, ob man die Neu-Indexierung der PhotoStation auch per cronJob starten kann? :confused::confused:

Ich habe unter /usr/syno/synoman/tools/ eine Menge an cgi's gefunden. Aber kann man die so ansprechen - und vor allem, welcher ist der richtige???

Grüße
T4B
 

T4B_

Benutzer
Mitglied seit
06. Apr 2007
Beiträge
440
Punkte für Reaktionen
0
Punkte
0
Ey das ist ja Supa, Mann! ;)

Danke, werd's mal testen!
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
sollte gehen. du kannst den index dienst stoppen, die indexierung manuell anstossen und dann den index deamon wieder starten. das war beim index fehler nach update auf fw 426 mal notwendig... kannst du hier nachlesen:

http://www.synology.com/enu/forum/viewtopic.php?t=1675&highlight=
Hmmm - ich werd noch nicht ganz schlau draus... Wie kann man denn den Indexdienst manuell anstossen? In dem verlinkten Artikel hast Du nur was von neu booten geschrieben. Oder verstehe ich es nur nicht?!?

Trolli
 

Supaman

Benutzer
Mitglied seit
26. Jan 2007
Beiträge
1.447
Punkte für Reaktionen
0
Punkte
62
bei dem firmwarefehler der version 4.26 habe ich mich damals recht intensiv mit dem indexdienst beschäftigt, das ganze funktioniert folgendermaßen: es gibt einen deamon, der ein auge darauf hat, ob eine datei in eine der 3 media-ordner kopiert / gelöscht / verschoben wird.

deamon bemerkt nur zugriffe bzw veränderungen über die netzwerk-protokolle, z.b. windows-dateizugriff oder ftp. werden dateien direkt auf der shell verschoben, bemerkt der deamon das nicht.zumindest war es bei der 4.x firmware so. möglicherweise kann man inzwischen dateien über den webinterface manager verschieben, die bemerkt werden, damit habe ich aber keine erfahrungen

dann gibts noch einen datenbank deamon, der für den upnp dienst den die einträge aus dem, index bereitstellt, damit beim abspielen mit dem upnp-player die verzeichnisse nicht jedesmal durchsucht werden müssen, das würde zu viel zeit kosten.

wenn nun eine datei aus den media-ordner kopiert / gelöscht / verschoben wird, wird in den index temp ordner /var/spool/syno_indexing_queue ein eintrag mit dem pfad der datei gemacht und ob der eintrag neu erstellt oder gelöscht werden soll. der datenbank deamon wiederum überwacht den index temp ordner und schreibt das in die index datenbank.

zu deinem vorhaben:
per telnet einloggen, dann diese kommandos absetzen

killall synoindexd
su -l admin -c "/usr/syno/pgsql/bin/pg_ctl stop -s -m fast"
rm -r /var/database
rm /var/spool/syno_indexing_queue.tmp
rm /var/spool/syno_indexing_queue
sync

jetzt ist die GANZE datenbank platt, auch die indexierungen für musik und video. einmal neustarten, dann wirde der deamon gestartet und eine blitzblanke neue datenbank erzeugt.

was jetzt noch fehlt ist die neuindexierung von musik, video und photo. dazu kannst du entweder die inhalte der ordner verschieben, kopieren oder per telenet manuell anstossen.

das programm dazu ist:

NAS> /usr/syno/bin/synoindex
Copyright (c) 2003-2007 Synology Inc. All rights reserved.

usage:
Add: synoindex -a filename
Delete: synoindex -d filename
Add folder: synoindex -A folder
Delete folder: synoindex -D folder
Rename/move file/folder: synoindex -N newfullpath oldfullpath
Get from DB: synoindex -g filename -t [video|music|photo|playlist]
Read meta from file: synoindex -r filename -t [video|music|photo|playlist]

in den scripten wird teilweise mit "-R" gearbeitet, was hier nicht auftaucht. möglicherweise ein rekursives hinzufügen ganzer order mit allen daten.

also noch 3 befehle absetzen:

synoindex -A /volume1/photo
synoindex -A /volume1/video
synoindex -A /volume1/music

dann *müsste* der gesamte index neu erzeigt worden sein, was bei vielen dateien viele oder seeehr viele stunden dauern kann, leute mit ein paar hunderttausend mp3 dateien etc haben im englischne forum von laufzeiten bis zu mehreren tagen berichtet.



---- variante #2 ----


möglicherweise reicht es auch, mit "synoindex" nur die struktur von "photo" zu entfernen und neu einzulesen. etwas mehr aufschluss über die funktionsweise der photo indexierung findet man in der datenbankerzeugung der photo db:

/usr/syno/bin/photo.sh
#!/bin/sh
# Copyright (c) 2000-2006 Synology Inc. All rights reserved.
Upgrade=0
case $1 in
"start")

echo "Update photo log table where log id = 0 to test db existence"
su -l admin -c "/usr/syno/pgsql/bin/psql photo -c \"update photo_log set success = false where logid = 0\""
Ret=$?
if [ $Ret = 2 ]; then
su -l admin -c "/usr/syno/pgsql/bin/createdb photo"
if [ $? != 0 ]; then
echo "Failed to create database"
exit
fi
Ret=1
Script="/usr/syno/etc.defaults/photo.pgsql"
fi

if [ $Ret = 0 ]; then
echo "Update photoImage table to test new table existence"
su -l admin -c "/usr/syno/pgsql/bin/psql photo -c \"update photo_image set updated = '0' where id=0\""
Ret=$?
if [ $Ret = 1 ]; then
Ret=1
Script="/usr/syno/etc.defaults/photo_upgrade.pgsql"
Upgrade=1
else
Ret=0
fi
fi

if [ $Ret = 1 ]; then
su -l admin -c "/usr/syno/pgsql/bin/psql photo < $Script"
if [ $? != 0 ]; then
echo "Failed to initial photo database"
exit
fi
/usr/syno/bin/synoindex -R photo
fi

if [ $Upgrade -eq 1 -a -d "/var/services/photo/" ]; then
/usr/syno/bin/makethumb.sh start &
fi

if [ -f "/tmp/photo.pgdump" ]; then
su -l admin -c "/usr/syno/pgsql/bin/psql photo < /tmp/photo.pgdump"
if [ $? != 0 ]; then
echo "Failed to restore photo database"
exit
fi

rm /tmp/photo.pgdump
if [ $? != 0 ]; then
echo "Failed to remove photo database backup"
exit
fi
fi
;;
*)
echo "Usage: $0 start"
;;
esac
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Wow - das ist ja mal eine Menge Wissen! Könnte es nicht auch reichen, wenn man mit
Code:
synoindex -D folder
synoindex -A folder
nur das geänderte Verzeichnis neu einliest? Werden dabei dann auch die Thumbnails neu generiert? Oder muss dazu dann auch noch die makethumb.sh irgendwie ausgeführt werden?

Trolli
 

Supaman

Benutzer
Mitglied seit
26. Jan 2007
Beiträge
1.447
Punkte für Reaktionen
0
Punkte
62
Könnte es nicht auch reichen, wenn man mit [...] nur das geänderte Verzeichnis neu einliest?
gute frage, da hilft nur ausprobieren. der media server mit der index datenbank ist kein hexenwerk. ihr könnt die *.pat firmware mit RAR, WINZIP oder total commander entpacken und dann einfach mal in /etc oder /usr/syno/bin/ die *.sh scripte ansehen. einfach mal bissl rümstöbern, dann kommt ihr da schon hinter. das grundprinzip hab ich ja schon erklärt:)
 

T4B_

Benutzer
Mitglied seit
06. Apr 2007
Beiträge
440
Punkte für Reaktionen
0
Punkte
0
Jepp, es geht!

So, es klappt. Zumindest der erste Versuch. Ein Langzeittest folgt noch.

Die crontab:
Rich (BBCode):
#minute	hour	mday	month	wday	who	command
0	0	*	*	*	root	/usr/sbin/ntpdate -b ntp1.fau.de
*/2	*	*	*	*	root	mv /volume1/public/*.* '/volume1/photo/Costa Rica'
*/30	*	*	*	*	root	synoindex -A /volume1/photo
In dem Beispiel werden alle zwei Minuten alle Dateien aus dem public-Ordner in den Ordner Photo/Costa Rica kopiert.
Dann wird alle 30min. der Index von Photo neu hergestellt (oder aktualisiert !?!).
Die Zeiten werde ich natürlich noch entsprechend anpassen...

Dank euch für die Hilfe!
 

AleksCee

Benutzer
Mitglied seit
08. Dez 2007
Beiträge
201
Punkte für Reaktionen
0
Punkte
16
Ich war auch nach der Suche diese zu tun und bin dabei (danke der Beiträge hier) auf folgendes gestoßen.

Wenn man per Weboberfläche ein Reindex anstößt wird eine Datei erstellt:
/var/spool/syno_indexing_queue

mit dem Inhalt:
R:all

Diese wird dann vom synoindexd in syno_indexing_queue.tmp umbenannt und dann geht's los
Mit der Info und der aus diesem Thread habe ich dann das gefunden:

/usr/syno/bin/mediaserver.sh: /usr/syno/bin/synoindex -R all

Welches die selbe Wirkung wie das Auslösen über die Weboberfläche hat.

Aber eine Frage habe ich noch: wodurch erkennt denn der indexdienst das eine Datei von einem netzwerkshare geändert wurde und wieso werden offensichtlich nur music,photo,video überwacht?


lg Alex
 
Zuletzt bearbeitet:

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Ich denke mal die Überwachung erfolgt über den Synology indexdaemon /usr/syno/sbin/synoindexd.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
/usr/syno/bin/mediaserver.sh: /usr/syno/bin/synoindex -R all

Welches die selbe Wirkung wie das Auslösen über die Weboberfläche hat.

So ziemlich alle Geschichten, die man über die Weboberfläche anstößt, werden dann per Kommando ausgeführt (wie meist bei Windows auch ...). Deswegen könnte man ja auch eine eigene schicke Weboberfläche für die DS entwickeln ...

Ansonsten kann man sich oft auf der telnet-Kommandoszeile ansehen, was so ein Tool alles an Einstellungen mag:

Rich (BBCode):
/usr/syno/bin/synoindex --help

Copyright (c) 2003-2008 Synology Inc. All rights reserved.

usage:
    Add:    synoindex -a filename
    Delete: synoindex -d filename
    Add folder:    synoindex -A folder
    Delete folder: synoindex -D folder
    Rename/move file/folder:    synoindex -N newfullpath oldfullpath
    Update Photo Images:        synoindex -U photo
    Get from DB:         synoindex -g filename -t [video|music|photo|playlist]

wobei man bein diesem Tool das --help nicht mal eingeben muss.

Itari
 
Zuletzt bearbeitet:

Christian72D

Benutzer
Mitglied seit
29. Apr 2010
Beiträge
715
Punkte für Reaktionen
12
Punkte
44
Sehe ich es also richtig, daß wenn ich diesen Aufruf:
/usr/syno/bin/mediaserver.sh: /usr/syno/bin/synoindex -R all
per Cron einbinde daß dann wirklich nur die neuen Fotos bzw. Mediendateien indexiert werden?

Ich verbiege nämlich meine persönlichen Fotos aus der Cloudstation in den \photo Ordner, diese Änderungen nimmt der Dämon ja auch nicht wahr.

Es einfach testen wäre theoretisch machbar, aber Vodafone hat hier z.Zt. eine größere Störung, so daß ich per Mobilfunk surfe, da komme ich erst mal per telnet nicht auf die Konsole.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat