mount-sshfs – AppleScript

Von Linux her kenn ich es, das man seine Server auch über ssh in seinen Verzeichnisbaum einhängen kann. Dies find ich immer sehr praktisch. Das wollte ich nun auch auf meinen Mac haben. Allerdings ist es hier etwas kompliziert. Mac OS X kann zwar SSH, aber eben nciht drüber sftp. Da schafft dann das kleine Tool sshfs Abhilfe was man hier downloaden kann. Danach noch das Binary nach /sbin kopiert und schon sind wir unseren Zeil wieder näher. Nun kann man über den Terminal mit mount_sshfs seine Server mounten. Damit dann alles im weiteren Verlauf problemlos läuft, sollte man noch seinen ssh-key auf dem Server einrichten, dann brauch man nicht immer das Passwort eingeben.

mount_sshfs user@server:/verzeichnis /verzeichnis/lokal

Ich fand es dann allerdings auf Dauer immer ziemlich umständlich, da man immer ein verzeichnis haben musst wo man den Server einhängen kann. Wäre es nicht schön, wenn das so wie mit allen anderen Volumes unter Mac OS X ginge? Und das geht auch! Erstellt man unter /Volumes einen Ordner und mounted darauf etwas, wird beim Aushängen (Ziehen des Volumes in den Papierkorb) der angelegte Ordner mit entfernt. Soweit so gut. Jetzt wo wir das wissen und dann noch ein wenig AppleScript können, kann man sich doch ein kleines Script schreiben! So habe ich es dann auch getan. AppleScript ist dabei ziemlich einfach zu handhaben und sehr Sprach nah. Das heißt, man kann es auch verstehen wenn man nicht so viel Ahnung von Programmierung hat.

Als erste wird vom User eine Eingabe erwartet. Hier kann man einen DNS-Namen oder eine IP eingeben. Dann wird anhand dieser Eingabe ein Ordner mit diesen Namen unterhalb von /Volumes erstellt. Als Benutzer wird standardmäßig root genommen. Kann man ja aber auch noch im Code ändern. Dann wird über den Terminal mount_sshfs ausgeführt und anhand der Eingabe versuch diesen Server per SSH einzubinden. Der Terminal ist kurz zu sehen, wird dann aber gleich wieder beendet. Mir ist auf die schnelle keine bessere Lösung eingefallen. Wenn ich nur „do shell script“ mach, bleibt die Applikation so lange aktiv, bis man das Volume unmountet. Abschliessen wird dies noch per Say über die Mac OS X – Sprachausgabe bestätigt.

so dann hier nun zum Script:

einmal hier als Listing:

set Server to text returned of (display dialog „Server eingeben:“ default answer „“)
try
tell application „Finder“ to make new folder at „Macintosh HD:Volumes“ with properties {name:Server}
on error
display dialog „Fehler: Ordner schon existenz oder kein schreiberechtigungen!“
end try

try
tell application „Terminal“
do script „mount_sshfs root@“ & Server & „:/ /Volumes/“ & Server
delay 2
quit
end tell
on error
display dialog „Fehler: Server konnte nicht eingebunden werden!“
end try

tell current application
say „Volume mounted“
end tell

einmal als Script-Download:

Hier Downloaden

und einmal als fertiges Programm:

Hier Downloaden