Code:mntpt="/Volumes/Volume-Name"; smbuser="foo"; smbpass="bar"; smbserver="smb://192.168.0.1"; smbshare="Share-Name"; mkdir -pm 777 "$mntpt"; mount -t smbfs -o automounted,soft \ //"$smbuser":"$smbpass"@"$smbserver"/"$smbshare" "$mntpt"; if [ $? -eq 0 ]; then SUCCESS="yes"; else SUCCESS="no"; rmdir "$mntpt"; fi;
Ergebnis 1 bis 9 von 9
- 13.02.2010, 15:15 #1
Netzwerklaufwerk per shell mounten??
Hallo Leute,
ich bin dabei ein kleines Shell-Skript zu schreiben, dass mir automatisch per rsync Daten von einem Netzwerklaufwerk auf eine lokale Festplatte spiegelt. Nun möchte ich, dass das Skript automatisch das Netzwerklaufwerk mountet, falls es nicht bereits gemountet ist... Leider weiß ich nicht, wie ich mit 'mount' Netzwerklaufwerke mounte. Kann mir da jemand helfen?
Das ist mein bisheriger Versuch:
Code:# Volume mounten, falls noch nicht gemountet if [ -e $SERVER ] then echo $SERVER "bereits gemountet" WASMOUNTED=TRUE else mount volume "smb://192.168.1.2/www" WASMOUNTED=FALSE fi
- 13.02.2010, 15:52 #2
- 13.02.2010, 17:11 #3
Danke!
Habe es aber jetzt so gemacht:
mount_smbfs ist das Schlüsselwort
Code:# Volume mounten, falls noch nicht gemountet if [ -e $SERVER ] then echo "/Volumes/"$SERVER "bereits gemountet" WASMOUNTED=TRUE else mkdir /Volumes/$SERVER mount_smbfs //192.168.1.2/$SERVER /Volumes/$SERVER WASMOUNTED=FALSE fi
- 13.02.2010, 18:59 #4
Kleine Debugging-Hilfe:
Code:if [ -e /Volumes/"$SERVER" ] then echo "/Volumes/"$SERVER "bereits gemountet" WASMOUNTED=TRUE else mkdir /Volumes/"$SERVER" mount_smbfs smb://192.168.1.2/"$SERVER" /Volumes/"$SERVER" WASMOUNTED=FALSE fi

BTW
"mount_smbfs" und "mount -t smbfs" sind prinzipiell äquivalent.
Letztere Verwendungsweise ist aber als transparente Darstellung vom konkreten VFS-Treiber abstrahiert und daher zu bevorzugen.
Genauer:
Letzteres sieht im Ordner /System/Library/Filesystems/ nach, welche externen Dateisystemtreiber bei dir installiert sind, findet dort für den SMB Service das Paket "smbfs.fs", wertet die darin befindlichen Informationen aus und weiss dann, dass du das Kommando "mount_smbfs" benötigst.
"mount -t externaltype" dient als intelligenter Wrapper für jede Form von Dateisystem. Ergänzt du deine Systemsoftware durch eine alternative und bessere Software zum SMB-Zugriff, wird dadurch ohne weiteres Zutun die neuere benutzt. Ein "mount_smbfs" zeigt jedoch immer auf ein ganz konkretes Programm aus einer ganz bestimmten Softwaredistribution und müsste ggf. erst angepasst werden.Geändert von Rastafari (13.02.2010 um 19:12 Uhr)
- 13.02.2010, 19:05 #5
Also die Anführungsstriche um $SERVER benötige ich nicht, geht auch so. "smb:" lasse ich auch weg. Volumes in -e /Volumes/"$SERVER" hatte ich vergessen, stimmt
- 14.02.2010, 13:51 #652 2E 54 2E 46 2E 4D 21 0A 44 65 6E 6E 1F 73 69 65 1F 77 69 73 73 65 6E 1F 6E 69 63 68 74 2C 1F 77 61 73 1F 73 69 65 1F 74 75 6E 21
Make it idiot-proof, and they'll make a better idiot.
- 14.02.2010, 14:46 #7
Ich dachte, dass ich die Anführungsstriche weglassen kann, wenn ich die Leerzeichen in der Variable $SERVER mit einem Backslash schütze, aber scheinbar habe ich mir das einfacher vorgestellt, als es eigentlich ist. Habe sie jetzt drin.
Aber irgendwie scheint es doch noch nicht ganz zu klappen... So sieht es derzeit aus:
Jedoch bekomme ich noch folgende Meldung:Code:# Informatioen ausgeben echo "Quelle: /192.168.1.2/$SHARE" echo "Ziel: $DATA_PATH" # Volume mounten, falls noch nicht gemountet if [ -e /Volumes/"$SHARE" ] then echo "/Volumes/$SHARE bereits gemountet" WASMOUNTED=TRUE else mkdir /Volumes/"$SHARE" mount -t smbfs -o automounted,soft //Admin:Pass@192.168.1.2/"$SHARE" /Volumes/"$SHARE"; if [ $? -eq 0 ]; then WASMOUNTED=FALSE; else WASMOUNTED=TRUE; rmdir /Volumes/"$SHARE"; fi; fi
Ich vermute das Leerzeichen in der Variable $SHARE...Debug eingeschaltet
Quelle: /192.168.1.2/iMac Backup
Ziel: /Volumes/Server-Backup/iMac Backup
mount_smbfs: URL parsing failed, please correct the URL and try again: Invalid argument
- 14.02.2010, 16:59 #8
- 14.02.2010, 18:57 #9
Ahhhhh!
Daran habe ich natürlich nicht gedacht, aber ergibt Sinn
Jetzt scheint alles zu laufen
Vielen Dank!


Zitieren

