Mount nach Neustart nicht mehr verfügbar

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
das skript sollte aber nach dem erfolgreichen mount nicht aussteigen, sondern weiter prüfen ob die andere station runter und wieder hoch gefahren wird, wenn ja soll das script wieder einen mount ausführen
Das ist schön und gut führt aber dazu, dass dein Script nie einen Abschluss findet. ein Startscript sollte irgendwann mal abgeschlossen sein.
Ich würde im Startscript genau einmal prüfen ob die DS da ist. Wenn nein, dann würde ich cron verwenden um das Script in einer Endlosschleife auzuführen, sobald die DS (110+) komplett hochgefahren ist.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
ein Versuch wäre noch
Rich (BBCode):
start)
/usr/syno/bin/mount.sh&
;;
stop)
/usr/syno/bin/umount.sh&
um das Script in eine Subshell im Hintergrund zu befördern.

Gruß Götz
 

Mirage1981

Benutzer
Mitglied seit
12. Jul 2010
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
@goetz: danke werd ich heut gleich als erstes versuchen wenn ich zeit hab

@jahlives: das die endlosschleife das problem ist hab ich mir auch schon gedacht und hatte gestern daraufhin schon etwas mit crondtab experimentiert

allerdings wenn ich über crondtab das mount jede minute starte, muß er mir vor dem ausführen des mounts überprüfen ob dieser nicht schon da ist (da ich ja nicht mehr mit der variablen "mo" aus dem alten script arbeiten kann)
würde auch ohne gehn ... einfach nochmal drüber mounten ... aber dabei gehn dann die Platten in der großen DS nie wieder auf idle da ständig der mount kommt
deshalb auch die frage am ende des posts von heut morgen zu mount | grep
und noch ne kleine Frage:
- wie kann ich per script abfragen ob der mount schon existiert
ich habe mit if mount | grep /volume1/games versucht ... aber grep kann anscheinend in der mount ausgabe nicht suchen ... es wird immer alles ausgegeben
wie mache ich eine vernünftige abfrage ob der mount da ist
ich hab schon einige versionen in Internet gefunden ... leider scheint es in der DS shell nicht zu laufen :(
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
In der Datei /proc/mounts müssten eigentlich alle aktiven mounts verzeichnet werden.
Also sowas in der Art
Code:
if grep -qs '/mnt/foo' /proc/mounts; then
 # Mount vorhanden
else
 #mount nicht vorhanden
fi
/mnt/foo mit dem Pfad zu deinem Mountpoint ersetzen.
 

Mirage1981

Benutzer
Mitglied seit
12. Jul 2010
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
endlich läuft es :)

erst einmal herzlichen dank an jahlives und goetz und natürlich auch den rest im forum ... ohne euch wär ich verloren gewesen

@goetz: dein letzer tip war gold richtig ... damit funzt das skript
@jahlives: deinen letzten post konnte ich noch nicht testen ... wenn ich mal viel zeit hab, setz ich mich nochmal dran

so und hier die lösung meines problems zusammen gefasst

zuerst das start/stop script: S99mount.sh - folder /usr/syno/etc/rc.d/
Rich (BBCode):
#!/bin/sh
# S99mount.sh
# mount/bind some folders on startup
# and umount them on shutdown/reboot

case $1 in
start)
sh /usr/syno/bin/mount.sh&
;;
stop)
sh /usr/syno/bin/umount.sh
;;
*)
echo "Usage: $0 [start|stop]"
;;
esac
exit 0

die durch den start aufgerufene endlosschleife zum prüfen ob die DS1010 online und den mount: mount.sh - folder /usr/syno/bin
Rich (BBCode):
#!/bin/sh
mo=1
while [ 1 = 1 ];
do
sleep 10
ping -q -c 1 <IP.DS1010> > /dev/null
if [ $? = 0 ]; then
if [ $mo = 1 ]; then
sleep 60
/bin/mount -t nfs <IP.DS1010>:/volume1/games /volume1/games
/bin/mount -t nfs <IP.DS1010>:/volume1/movies /volume1/movies
/bin/mount -t nfs <IP.DS1010>:/volume1/incoming /volume1/incoming
/bin/mount -t nfs <IP.DS1010>:/volume1/programs /volume1/programs
mo=0
fi
else
if [ $mo = 0 ]; then
mo=1
fi
fi
done
exit 0

die durch den stop aufgerufene umount: umount.sh - folder /usr/syno/bin
Rich (BBCode):
#!/bin/sh

/bin/umount /volume1/movies
/bin/umount /volume1/games
/bin/umount /volume1/incoming
/bin/umount /volume1/programs

exit 0

und zum schluss der eintag in die crontab ... um den unmount auszuführen bevor die DS1010 abschaltet
Rich (BBCode):
#minute hour    mday    month   wday    who     command
35      3       *       *       *       root    sh /usr/syno/bin/umount.sh

falls euch noch was auffallen sollte was nicht so ganz in ordnung ist ... schreibt nochmal
 
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