Skip to content

Samba-Shares auf dem Mac automatisch mounten und gemountet halten

An unserem Router hängen u. a. ein Mac mini mit ausgelagerten Musik- und Fotomediatheken und zwei Raspberry Pi mit Pi-Hole und Home Assistant. Um darauf zugreifen zu können, sind die entsprechenden…

Esse est percipi
May 23, 2024 · 2 min read · 1 read

n unserem Router hängen u. a. ein Mac mini mit ausgelagerten Musik- und Fotomediatheken und zwei Raspberry Pi mit Pi-Hole und Home Assistant. Um darauf zugreifen zu können, sind die entsprechenden Volumes bzw. Shares auf meinem Arbeits-Mac gemountet. Hin und wieder kommt es leider vor, dass sich diese Shares aus unerfindlichen Gründen verabschieden. Um sie unkompliziert wieder zu mounten, habe ich folgendes Applescript geschrieben: 

set macminiIP to "192.168.x.y" set macminiShares to {"Musik", "Fotos"}

set raspi4IP to "192.168.y.z" set raspi4Shares to {"config"}

try tell application "System Events" set volumeList to get the name of every disk end tell

if workgroupAvailable(macminiIP) then repeat with thisShare in macminiShares if volumeList does not contain thisShare then try mount volume "smb://" & macminiIP & "/" & thisShare on error exit repeat end try end if end repeat end if

if workgroupAvailable(raspi4IP) then repeat with thisShare in raspi4Shares if volumeList does not contain thisShare then try mount volume "smb://" & raspi4IP & "/" & thisShare on error return end try end if end repeat end if

on error theError return theError end try

on workgroupAvailable(ipAddress) set workGroup to do shell script "smbutil status " & ipAddress & " | awk '/Workgroup:/{print $2}'" if workGroup is equal to "" then return false else return true end if end workgroupAvailable

Dieses Script lässt sich natürlich per Hand starten, aber ein LaunchAgent kann einem diese Arbeit abnehmen. Folgender launchd-Agent ruft obiges Applescript alle 60 Sekunden auf. Im Script wird geprüft, ob alle eingetragenen Shares verfügbar sind. Sollte das nicht der Fall sein, wird der entspechende Share neu gemountet.

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.myagents.MountShares.plist</string> <key>ProgramArguments</key> <array> <string>/usr/bin/osascript</string> <string>/Applications/MountShares.app/Contents/Resources/Scripts/main.scpt</string> </array> <key>RunAtLoad</key> <true/> <key>StartInterval</key> <integer>60</integer> </dict> </plist>

Und so geht’s:

Speichern Sie das Applescript von oben als App unter dem Namen „MountShares.app“ in den Programme-Ordner. Erstellen Sie dann eine Textdatei mit dem Inhalt des zweiten Kastens. Diese Textdatei speichern Sie als „MountShares.plist“ in den Ordner ~/Library/LaunchAgents/

Damit der MountShares-Agent arbeiten kann, muss er mit folgendem Terminal-Befehl ins System geladen werden:

launchctl load ~/Library/LaunchAgents/com.myagents.MountShares.plist

Et voilà – ab sofort werden verschwundene Samba-Shares ohne weiteres Zutun spätestens nach einer Minute automatisch wieder gemountet.

Did you enjoy this article?

Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.

Across the AtmosphereDiscussions