Makrothek
Linux betrifft QNAP-NAS

Problembeschreibung:

Es sollen auf einer QNAP Box eigene Skripte beim booten gestartet werden.

Funktionierende Lösung

Die QNAP Box ruft bei jedem Booten das Skript

autorun.sh

auf, welches sich im Flash befindet und zur Bootzeit bei eingebundenem Flash in

/var/config/

zu finden ist. Dieses Skript ist im Originalzustand leer. Der Trick besteht nun darin, in diesem Skript einen Aufruf auf ein ausgelagertes Skript zu erstellen, damit wir den Flash nie wieder ändern müssen.

Folgende Schritte sind in der angegebenen Reihenfolge zu unternehmen:

1. In autorun.sh einen Aufruf auf unser eigenes Skript erstellen:

   1. per SSH auf QNAP einloggen
   2. Flash mounten: [~]# mount -t ext2 /dev/sdx6 /tmp/config
   3. Editor starten: [~]# vi /tmp/config/autorun.sh
   4. In die Datei folgendes eintippen:
      #!/bin/sh
      /share/HDA_DATA/autostart/autostart.sh
   5. Datei speichern
   6. Datei ausführbar machen: [~]# chmod +x autorun.sh
   7. Flash unmounten: [~]# umount /tmp/config

2. Verzeichnis autostart auf Festplatte und Skript autostart.sh erzeugen:

   [~]# cd /share/HDA_DATA
   [~]# mkdir autostart
   [~]# touch autostart/autostart.sh
   [~]# chmod +x autostart/autostart.sh

3. In autostart.sh folgendes eingeben:

#!/bin/sh
# Skript durchsucht das gesamte Verzeichnis nach Start-Skripten beginnend mit S[0-9]
# Diese werden aufsteigend ausgefuehrt
SCRIPT_DIR=/share/HDA_DATA/autostart
SCRIPTS = $(cd $SCRIPT_DIR && ls S[0-9][0-9]*)
for script in $SCRIPTS
do
  [ -x ${SCRIPT_DIR}/${script} ] && ${SCRIPT_DIR}/${script}
done

4. beliebige Start-Skripte generieren, z. B.

S10test.sh