mount / bind - Skript beim Neustart ausführen klappt nicht

Status
Für weitere Antworten geschlossen.

nexus_

Benutzer
Mitglied seit
02. Aug 2011
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

Folgendes Szenario:

Synology RS2414+ mit aktueller DSM 5.2-5592u4

Unser Kunde möchte für seine Kunden FTP Zugriff bereitstellen. Jeder Kunde soll nur sein Verzeichnis sehen, von intern (Windows Domäne) sollen alle User unkompliziert auf die Kunden-FTP-Verzeichnisse zugreifen können.

Bei Qnap gibt es ja die Ordner-Aggregation, das habe ich so bei anderen Kunden schon im Einsatz. Dies ist leider bei Synology meines Wissens nach noch nicht per GUI möglich.

Also habe ich ein Hauptverzeichnis "FTP" erstellt, in welches per mount / bind die FTP-Verzeichnisse der Kunden gemountet werden. Dies funktioniert auch soweit. Das Haupt-FTP Verzeichnis ist per net use in Windows gemappt. Soweit so gut.

Nach einem Neustart der NAS sollen die Kunden-Verzeichnisse aber wieder in das Haupt FTP-Verzeichnis gemountet werden. Die Skripte habe ich entsprechend angepasst und in die Verzeichnisse kopiert, leider werden Sie nach einem Neustart nicht ausgeführt, egal, welches der beiden. Aktuell versuche ich, das erweiterte Skript mit Log-Funktion ans laufen zu bringen.

Vorgegangen bin ich nach diesen Anleitungen.
http://www.synology-wiki.de/index.php/Mount_Bind und http://www.synology-wiki.de/index.php/Mount_Bind/scriptv2

Angepasst wurden die Dateien mit Notepad++. Die Rechte wurden gesetzt. Wenn ich versuche, das Skript per ./S99ZZ...sh auszuführen bekomme ich ein
-ash: ./S99ZZZ_customize.sh: not found

Ein ls bringt aber:

SynologyRS2414> ls
S01iptables.sh S11nslcd.sh S99synodatacollect.sh S99zbootok.sh
S01tc.sh S55cupsd.sh S99synogpoclient.sh
S02bootup.sh S99ZZZ_customize.sh S99synoreport.sh
S10synoscheduler.sh S99synocache.sh S99synosupportchannelchecker.sh
SynologyRS2414>

Die Datei liegt also schon dort, wo ich mich befinde (/usr/syno/etc/rc.d).

Ich habe im Forum einen Tip mit dem Admin-Tool gefunden, das Skript dort zu erstellen.
Dieses ist aber nicht installiert, ebensowenig IPKG, welches wohl auch so auf der aktuellen DSM nicht mehr so einfach zum laufen zu bringen ist, wenn ich richtig gelesen habe.

Kann mir hier an der Stelle jemand weiterhelfen? Ich habe im Prinzip das Szenario auch seit Jahren zu Hause auf meiner DS410, muss nach einem Neustart immer manuell mounten :(.

Danke und Gruß,
 

dil88

Benutzer
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.846
Punkte für Reaktionen
2.284
Punkte
829
Dass Du manuell mounten musst, ist ja klar, wenn sich das Skript nicht ausführen läßt. Könntest Du bitte einmal den Output von

Rich (BBCode):
ls -l /usr/syno/etc/rc.d/S99ZZZ_customize.sh

und den Inhalt des Skripts posten?
 

nexus_

Benutzer
Mitglied seit
02. Aug 2011
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Das war auch nur der Test, ob die Verzeichnisse korrekt sind und manuell das mounten funktioniert ;)

Code:
SynologyRS2414> ls -l /usr/syno/etc/rc.d/S99ZZZ_customize.sh
-rwxr-xr-x    1 root     root          1072 Sep 10 11:35 /usr/syno/etc/rc.d/S99ZZZ_customize.sh

Berechtigungen müssten passen.

Also eine Neuerung habe ich, beim ausführen des Skripts mit

SynologyRS2414> ./S99ZZZ_customize.sh start
SynologyRS2414> mount

bekomme ich keine Meldung, also sollte das Skript ohne Fehler ausgeführt worden sein.

Da sind wir ein Stück weiter.

Leider sehe ich nach der Eingabe von "mount" nicht die erwarteten Verzeichnisse, ebenso wenig kann ich von Windows aus zugreifen.

Das Skript sieht so aus:

Wurde 1zu1 übernommen, die Pfade und "sleep 30" angepasst und eingefügt.


Code:
#!/bin/sh
# chmod 755 /usr/syno/etc.defaults/rc.d/S99ZZZ_customize.sh
# mount/bind some folders on startup and umount them on shutdown/reboot ([url]http://www.synology-wiki.de/index.php/Mount_Bind[/url])
# Write to system log, event ids in /usr/syno/synosdk/texts/enu/events ([url]http://forum.synology.com/enu/viewtopic.php?f=27&t=6396[/url])
mountit()
{
	# $1 mount what, $2 mount where
	if [ -e "$2" ]
	then
		/usr/syno/bin/synologset1  sys err 0x11800000 "$0: "$2" exists"
	else
		/bin/mkdir -p "$2"
		/bin/mount -o bind "$1" "$2"
		/usr/syno/bin/synologset1  sys info 0x11800000 "$0: Mounted "$1" to "$2""
	fi
	return
}
umountit()
{
	# $1 umount what
    /bin/umount $1 && /bin/rmdir "$1" && /usr/syno/bin/synologset1  sys info 0x11800000 "$0: Unmounted "$1""
	return
}

case $1 in
start)
	sleep 30
	mountit /volume3/FTP-001 /volume3/FTP/Kunde-001
	mountit /volume3/FTP-002 /volume3/FTP/Kunde-002
	mountit /volume3/FTP-003 /volume3/FTP/Kunde-003
	;;
stop)
	umountit /volume3/FTP-001/
	umountit /volume3/FTP-002/
	umountit /volume3/FTP-003/
	;;
*)
	echo "Usage: $0 [start|stop]"
    ;;
esac

In Windows existiert Kunde-001, 002 etc. existiert bereits unter FTP.
T:\Kunde-001


Danke.




[edith sagt]
Nach dem Ausführen des Skript gibt das Synolog folgendes her:
./S99ZZZ_customize.sh: /volume3/FTP/Kunde-001 exists.


Also habe ich die Windows-Ordner wieder gelöscht und das Skript manuell erneut ausgeführt und siehe da:
die Verzeichnisse sind da :) - Er erstellt die "Unterordner" dann scheinbar selbst.

Ich starte jetzt mal die NAS neu und melde mich nochmal.
 
Zuletzt bearbeitet:

nexus_

Benutzer
Mitglied seit
02. Aug 2011
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
also folgendes:

2015-09-10 14:20:38 Information SynologyRS2414 user Connection CIFS client [DOMÄNE\administrator] from [SERVER (IP:192.168.0.19)] accessed the shared folder [FTP].
2015-09-10 14:20:32 Information SynologyRS2414 user Connection User [admin] logged in from [192.168.0.19] via [DSM].
2015-09-10 14:20:10 Error SynologyRS2414 user System /usr/syno/etc/rc.d/S99ZZZ_customize.sh: /volume3/FTP/Kunde-003 exists.
2015-09-10 14:20:09 Error SynologyRS2414 user System /usr/syno/etc/rc.d/S99ZZZ_customize.sh: /volume3/FTP/Kunde-002 exists.
2015-09-10 14:20:09 Error SynologyRS2414 user System /usr/syno/etc/rc.d/S99ZZZ_customize.sh: /volume3/FTP/Kunde-001 exists.
2015-09-10 14:19:49 Information SynologyRS2414 user System Normal shared folder [usbshare1] was created.
2015-09-10 14:19:47 Information SynologyRS2414 user System External disk [USB Disk 1] is mounted and shared folder [usbshare1] is exported.
2015-09-10 14:19:36 Information SynologyRS2414 user System System started to boot up.

Die Windows Ordner (FTP\Kunde-001, 002...) bleiben stehen, daher läuft das Skript nicht sauber.

Ordner gelöscht, Skript ausgeführt, tut. mount / bind getrennt, Ordner gelöscht, reboot, tut.
Also das scheint das Problem zu sein, warum nach einem Neustart die Ordner nicht gemounted werden. War ein langer Weg bis hierhier ;)

Ideen?



Danke und Gruß,


btw.
Gespeicherten Text wiederherstellen - was eine geile Funktion :cool:
Timeout im Forum recht niedrig?? ;)
 
Zuletzt bearbeitet:

nexus_

Benutzer
Mitglied seit
02. Aug 2011
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Ha!

http://www.synology-forum.de/showthread.html?34628-Mount-Bind-Problem/page2&highlight=mount+reboot

Post #12

Wieso habe ich das nicht schon gestern gefunden....

jahlives schrieb:
Nur weil das Zielverzeichnis des mounts existiert heisst dies ned, dass auch etwas darauf gemountet ist.

genau :)

Code:
if [ "x$(mount | grep $2)" != 'x' ] ; then
 /usr/syno/bin/synologset1  sys err 0x11800000 "$0: $2 exists"
else  
 /bin/mkdir -p $2 >/dev/null 2>&1
 /bin/mount -o bind $1 $2
 /usr/syno/bin/synologset1  sys info 0x11800000 "$0: Mounted $1 to $2"
 fi


DANKE dil88 fürs mitschauen und danke jahlives für eine Lösung. Es gibt bestimmt auch noch andere Lösungswege, aber ob das jetzt so reingetackert wird oder noch schöner geht, ich kanns jedenfalls nicht coden, von daher ;)



btw.
bei mir zu Hause gehts nicht, weil ich die Ordner verschlüsselt habe... man machts halt einfach zu selten, als dass ich da so tief immer drin bin und an alles denk ;)



Gruß,
NeX
 
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