- Mitglied seit
- 25 Apr 2005
- Beiträge
- 169
- Punkte für Reaktionen
- 0
- Punkte
- 16
Ich habe mich mal rangesetzt und ein kleines Startscript geschrieben,
was eine Datei vom USB-Stick startet.
Einfach am Anfang der debug.cfg einfügen. Darauf wird solange nach
einem USB-Stick und der darauf enthaltenen Startdatei gesucht, bis
sie gefunden wurde.
Wurde sie gefunden, wird dies für 10 sek. durch Blinken der INFO-LED
angezeigt während die Datei gestartet wird.
Danach wird der Daemon beendet bis zum nächsten Neustart.
Es funktioniert:
- bei eingestecktem Stick beim Booten
- wenn der Stick während des Betriebes eingesteckt wird
- nachdem eine Datei auf den Stick kopiert wurde (z.B. per FTP)
Standardmässig wird alle 10 sec. nach der datei fbfautorun.sh
im Root-Verzeichnis des USB-Sticks gesucht.
Das obligatorische Raten, wie hoch ein sleep wert sein muss,
bevor die Box Zugriff auf den Stick hat, und wie der Stick nun
gerade heißt, fällt also weg.
Aus Sicherheitsgründen empfielt es sich, das FTP-Laufwerk Passwort
zu schützen, den USB-Stick über das Webinterface - oder besser hardwareseitig -
schreibzuschützen, oder zumindest auf eine bestimmte Zeit, z.B. 2 min (LIMIT*WAIT_TIME)
nach dem Start zu begrenzen.
Es muss bedacht werden: Jeder, der Zugriff auf diese Datei hat, bzw.
eine erstellen kann, kann beliebigen Code einfügen. Zugangsdaten
ausspionieren wäre z.B. eine Möglichkeit.
Das gilt natürlich für alle Dateien auf dem USB-Stick, die nachgeladen
werden (können).
Ich finde es aber trotzdem gut
Das liesse sich jetzt natürlich noch mit einem Stop-Script verbinden, das nach dem
Entfernen z.B. einen bestimmter Dienst wieder beendet (z.B. OpenVPN zum Mitnehmen)
PS: Das funktioniert z.Zt. nur, wenn ein Stick/HDD gemounted wird. Es darf ausserdem nur
eine Partition vorhanden sein. Wer eine Wechselfestplatte mit mehreren
Partitionen oder mehrere Platten über einen Hub (gibts da eigentlich schon jemanden??)
hat, muss das Script anpassen.
Bin gerade dabei, eine neue Version davon zu basteln.
Rückmeldung wär fein
was eine Datei vom USB-Stick startet.
Einfach am Anfang der debug.cfg einfügen. Darauf wird solange nach
einem USB-Stick und der darauf enthaltenen Startdatei gesucht, bis
sie gefunden wurde.
Wurde sie gefunden, wird dies für 10 sek. durch Blinken der INFO-LED
angezeigt während die Datei gestartet wird.
Danach wird der Daemon beendet bis zum nächsten Neustart.
Es funktioniert:
- bei eingestecktem Stick beim Booten
- wenn der Stick während des Betriebes eingesteckt wird
- nachdem eine Datei auf den Stick kopiert wurde (z.B. per FTP)
Standardmässig wird alle 10 sec. nach der datei fbfautorun.sh
im Root-Verzeichnis des USB-Sticks gesucht.
Das obligatorische Raten, wie hoch ein sleep wert sein muss,
bevor die Box Zugriff auf den Stick hat, und wie der Stick nun
gerade heißt, fällt also weg.
Aus Sicherheitsgründen empfielt es sich, das FTP-Laufwerk Passwort
zu schützen, den USB-Stick über das Webinterface - oder besser hardwareseitig -
schreibzuschützen, oder zumindest auf eine bestimmte Zeit, z.B. 2 min (LIMIT*WAIT_TIME)
nach dem Start zu begrenzen.
Es muss bedacht werden: Jeder, der Zugriff auf diese Datei hat, bzw.
eine erstellen kann, kann beliebigen Code einfügen. Zugangsdaten
ausspionieren wäre z.B. eine Möglichkeit.
Das gilt natürlich für alle Dateien auf dem USB-Stick, die nachgeladen
werden (können).
Ich finde es aber trotzdem gut
Code:
#===================================================================
usb_autostart()
#===================================================================
{
LIMIT=0 # how many tries? 0 for unlimited
WAIT_TIME=10 # seconds in between two tries
HOME_DIR=/ # directory where to find the file on the
# stick, must end with /
FILE_NAME=fbfautorun.sh #the file to look for
SIGNAL_TIME=10 #Time in s how long the INFO-LED shall blink
export usb_init=/var/media/ftp/`ls /var/media/ftp`${HOME_DIR}${FILE_NAME}
i=0;
echo Looking for autorun: ${HOME_DIR}fbfautorun.sh
while [ ! -e ${usb_init} ] 2> /dev/null
do
#echo $i #for debugging
export usb_init=/var/media/ftp/`ls /var/media/ftp`${HOME_DIR}${FILE_NAME}
sleep $WAIT_TIME
i=$(($i+1))
if [ $i -gt $LIMIT ]
then
if [ ! $LIMIT -lt 1 ]
then
break
fi
fi
done
if [ -e ${usb_init} ]
then
echo 7,3 >/var/led
echo Autorun found.
echo ${usb_init}
echo executing .....
${usb_init} &
sleep $SIGNAL_TIME
echo 7,1 >/var/led
fi
}
#===================================================================
usb_autostart &
Das liesse sich jetzt natürlich noch mit einem Stop-Script verbinden, das nach dem
Entfernen z.B. einen bestimmter Dienst wieder beendet (z.B. OpenVPN zum Mitnehmen)
PS: Das funktioniert z.Zt. nur, wenn ein Stick/HDD gemounted wird. Es darf ausserdem nur
eine Partition vorhanden sein. Wer eine Wechselfestplatte mit mehreren
Partitionen oder mehrere Platten über einen Hub (gibts da eigentlich schon jemanden??)
hat, muss das Script anpassen.
Bin gerade dabei, eine neue Version davon zu basteln.
Rückmeldung wär fein
Zuletzt bearbeitet: