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 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.
Ähnliche Beiträge:
What Does A Great Cup Of Coffee Taste Like? A social app for creatives, Cara grew from 40k to 650k users…
Kommentar schreiben:
FAQ (Häufig gestellte Fragen)
Kommentare:
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Henning zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Mesrop zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Hopper 1.0b7 (Update: 1.0b9)
Schlagwörter