Videos auf externer USB Platte werden nach Reboot neu indiziert

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

tAntChen

Benutzer
Registriert
12. Sep. 2011
Beiträge
152
Reaktionspunkte
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.
 
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
 
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