Videos auf externer USB Platte werden nach Reboot neu indiziert

Status
Für weitere Antworten geschlossen.

tAntChen

Benutzer
Mitglied seit
12. Sep 2011
Beiträge
145
Punkte für Reaktionen
19
Punkte
18
Ein frohes neues Jahr an alle hier :)

Ich habe aus Platzgründen viele Filme auf einer USB-Platte, die immer angeschlossen ist, ausgelagert. Die Video-Ordner auf der Platte sind im Media-Server angegeben und werden richtig indiziert. Leider ist es so dass diese Medien nach jedem Reboot erst aus dem Index entfernt werden und gleich wieder hinzugefügt werden, dies sieht man schön in der "/var/spool/syno_indexing_queue".

Rich (BBCode):
D:/volumeUSB1/usbshare/video
A:/volumeUSB1/usbshare/video
A:/volumeUSB1/usbshare/video

Mir ist natürlich klar warum dies von den Entwicklern so gebaut wurde, schließlich kann das System ja nicht davon ausgehen dass eine externe Platte nach dem Reboot wieder zur Verfügung steht. Für mich als Endbenutzer ist aber schon etwas ärgerlich wenn diese Inhalte nach dem Reboot als "Neu" eingelesen werden. Dieses Problem beschäftigt mich leider schon länger http://www.synology-forum.de/showthread.html?60473-Synoindex-selbst-starten-Ist-das-m%C3%B6glich, auf meiner alten DS411j war das noch lästiger weil die Kiste dann 2 Tage mit dem Index-Prozess beschäftigt war.

Meine Lösung für das Problem wäre den Index-Service aus dem Autostart zu entfernen und nach dem Reboot manuell oder automatisch NACH dem USB-Mount zu starten. Leider habe ich bis heute noch keine gute Lösung dafür gefunden vor allem weil ich die Befürchtung hege dass nach jedem Update-Reboot meine Änderungen wieder überschrieben werden.

Zudem ist mit die Funktionsweise des Autostarts nicht ganz klar. Ein paar Fragen dazu:

  1. ist "/etc/init/synoindexd.conf" das Autostart-Script für den Index-Deamon?
  2. welchen Hintergrund hat der Ordner "/etc.defaults/"?
  3. werden "/etc/" und "/etc.defaults/" nach einem Minor-Update wieder überschrieben?

Es würde mich wirklich freuen wenn ihr mir dabei helfen könntet das Problem in den Griff zu bekommen.
 

tAntChen

Benutzer
Mitglied seit
12. Sep 2011
Beiträge
145
Punkte für Reaktionen
19
Punkte
18
Ich habe eine Lösung für mein Problem gefunden. Jedoch habe ich einen anderen Ansatz gewählt, der weniger invasiv ist. Die simple Idee ist vor dem Shutdown ein Backup der Datenbanken zu machen und diese nach dem Reboot wieder einzuspielen.

Dafür habe ich mir kleines Script geschrieben das die Datenbanken backupen und restoren kann. Beim Restore wird der Index-Service erst angehalten und danach wieder gestartet.

Das alles ist sicher nicht der Weisheit letzter Schluss denn es berücksichtigt diverse edge case nicht z.B. sollte der Index-Service nicht beschäftigt sein während des Shutdown. Des weiteren muss ich davon ausgehen dass die Datenbank-Struktur nach dem Reboot nicht geändert wurde - was ich bei einem Update nicht ausschließen kann.

Rich (BBCode):
/usr/local/psql-bakup-restore.sh
Rich (BBCode):
#!/usr/bin/env bash


DB_DUMP_PATH=/volume1/downloads
DATABASES=(mediaserver video_metadata)

if [ ! -d ${DB_DUMP_PATH} ]; then
   mkdir -p ${DB_DUMP_PATH}
fi


if [ "$1" == 'backup' ]; then
    for DATABASE in ${DATABASES[@]}; do
        pg_dump -i -U postgres -F c -b -f "${DB_DUMP_PATH}/${DATABASE}.sql" ${DATABASE}
        echo "Create DB-DUMP for ${DATABASE} to ${DB_DUMP_PATH}/${DATABASE}.sql"
    done
elif [ "$1" == 'restore' ]; then
    /usr/syno/sbin/synoservice --hard-stop synoindexd
    rm /var/spool/synoindex/syno_video_index*
    rm /var/spool/synoindex/syno_indexing_queue*
    for DATABASE in ${DATABASES[@]}; do
        if [ ! -f ${DB_DUMP_PATH}/${DATABASE}.sql ]; then
            continue
        fi
        pg_restore -i -U postgres -c -d ${DATABASE} "${DB_DUMP_PATH}/${DATABASE}.sql"
        echo "Restore DB ${DATABASE} from ${DB_DUMP_PATH}/${DATABASE}.sql"
    done
    rm /var/spool/synoindex/syno_video_index*
    rm /var/spool/synoindex/syno_indexing_queue*
    /usr/syno/sbin/synoservice --start synoindexd
fi

Um das Script automatisch beim auszuführen brauch es ein weiteres Script.

Rich (BBCode):
/usr/local/etc/rc.d/video-database-backup-restore.sh
Rich (BBCode):
#!/bin/sh

# Backup mediaserver and video_metadata before shutdown and restore it after reboot

case $1 in
start)
        /usr/local/psql-bakup-restore.sh restore > /volume1/downloads/psql-bakup-restore.log
;;
stop)
        /usr/local/psql-bakup-restore.sh backup > /volume1/downloads/psql-bakup-restore.log
;;

*)
     echo "Usage: $0 [start|stop]"
;;
esac
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.885
Punkte für Reaktionen
1.171
Punkte
754
Danke fürs Teilen!
 
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