Ich versuche, etwas zu tun, von dem ich dachte, dass es einfach wäre, aber nachdem ich es recherchiert habe, habe ich das Gefühl, dass ich auf halbem Weg bin, ein Yak zu rasieren , also bitte ich um Rat. Ich möchte ein Skript erstellen, mit dem ich und meine Kollegen normale Spolight-Suchen auf einem gemeinsamen Laufwerk durchführen können, was nach Recherchen nicht einfach zu sein scheint und am besten mit einem Skript gelöst wird, das:
mdutil /Volumes/name -i on
, anscheinendDie fettgedruckten Teile sind die Teile, mit denen ich Probleme habe.
Besondere Probleme, die ich habe:
name of every disk
dann mount volume "path://to/volume"
-, aber es erlaubt mir nicht, den Namen anzugeben, und ich bin vorsichtig, wie konsistent der Mac einen Pfad auf a automatisch benennt freigegebenes Nicht-Mac-Laufwerk. Ich möchte den Volume-Namen festlegen, damit ich darauf verweisen kann, wenn ich Spotlight mitteile, welches Volume indiziert werden soll, was in AppleScript unmöglich zu sein scheint?Mein Wissensstand über Mac-Volumes usw. ist ziemlich gering, daher bin ich mir bewusst, dass ich einige der oben genannten Punkte möglicherweise missverstanden habe.
OS X befolgt beim Mounten eines Laufwerks die folgenden Schritte: Es erstellt ein Raw-Gerät in /dev/ (nur für lokale Festplatten), es erstellt einen Ordner in /Volumes/ und mountet dann das Laufwerk in dem gerade erstellten Ordner. Dieser Ordnererstellungsschritt ist wahrscheinlich das, was Sie gelesen haben. Dem von Ihnen verlinkten Shell-Skript fehlt der folgende Befehl:
mkdir /Volumes/somenetworkdir
Dann funktioniert der von Ihnen verlinkte Befehl mit den richtigen Parametern
mount -t smbfs -o username=RemoteUser //REMOTEHOST/directory /Volumes/somenetworkdir
set mountedVolumes to do shell script "ls /Volumes/"
if (mountedVolumes contains "thisDriveName") is false then
mount volume "afp://thisUsername:thisPassword@thisIPorHostname/thisDriveName"
end if
Sie können überprüfen, ob ein Volume gemountet ist, indem Sie die Ausgabe des mount
Befehls überprüfen:
mount | grep '/Volumes/SomeVolumeName'
Und Sie können es mit mounten open smb://...
. Ihr Skript könnte also etwa so aussehen
#!/bin/bash
server=my_server
share=SomeShare
user=my_username
pass=y_password
# ...
mount | grep -q "/Volumes/$share " || open smb://$user:$pass@$server/$share
# ...
Der open smb://...
Befehl wird es unter dem Namen der Freigabe bereitstellen.
user56reinstatemonica8
mount
anscheinend verwendet werden& nameVar
, um den Namen festzulegen, aber dies scheint dem zu widersprechen, was ich an anderer Stelle gelesen habe - zB hints.macworld.com/article.php?story=20120211184732735