Ständiges Skript/Anwendung zum Überprüfen/Einhängen von freigegebenen Laufwerken

Ich frage mich, wo ein guter Ausgangspunkt für dieses Problem ist. Ich glaube, es könnte mit Apple-Skript erreicht werden, aber zugegebenermaßen kenne ich seine Fähigkeiten nicht.

Szenario: Ich habe ein NAS, bei dem ich mich mit Finder anmelde. Sobald Sie angemeldet sind, gibt es zwei Ordner auf dem NAS, wenn ich auf einen der Ordner „SNAS“ klicke, wird er im Stammverzeichnis gemountet (dh wenn ich CMD + NACH-OBEN-TASTE nach oben drücke, wird er neben anderen Laufwerken aufgelistet). Ich ziehe es dann in meine Favoritenliste.

Wenn der Mac neu gestartet wird, gehen die Verbindung und der Favorit verloren und ich muss den Vorgang wiederholen.

Ich möchte, dass ein Skript automatisch bei jedem Start und dann regelmäßig (z. B. alle 30 Sekunden oder so) ausgeführt wird. Das Skript sollte prüfen, ob das NAS angemeldet ist, falls nicht, melden Sie sich an. Überprüfen Sie, ob der Ordner/das Laufwerk gemountet ist, falls nicht, mounten Sie es. Überprüfen Sie dann, ob es sich in der Favoritenliste befindet, und wenn nicht, markieren Sie es.

Tatsächlich wird der NAS-Ordner/das Laufwerk jedes Mal automatisch angemeldet, gemountet und favorisiert.

Ich mache gerne die Beinarbeit am Skript, aber wenn jemand einen Vorschlag hat, wo man anfangen soll / welche Sprache verwendet werden soll / oder möglicherweise eine dedizierte Anwendung, wäre das großartig, da ich bei der Suche nichts für die Nischenanfrage finden kann

Ich habe eine Reihe von Bildern angehängt, die die aktuellen Schritte zeigen.

Betriebssystemdetails: macOS Sierra 10.12.1 (16B2555)

Schritte, die automatisiert werden müssen

Antworten (1)

Sie können dies in der Shell tun.

Starten Sie ein Terminal und führen Sie dann Folgendes aus:

mount

Finden Sie die Zeile mit Ihrer Lautstärke und greifen Sie den ersten Teil bis zum Leerzeichen. Es sollte in etwa so aussehen:

//warren@10.0.15.2/Shared%20Network%20Volume

Das ist Benutzername@IP_OF_NAS/VolumeName

Hier ist nun das Skript, speichern Sie es als "remount.sh"

#!/bin/bash

date
mounted=$(/sbin/mount | grep -c "VOLUMENAME")
if [ $mounted -eq 0 ]; then
   ping -q -c 2 -t 1 IP_ADDRESS > /dev/null 2>&1
   if [ $? -eq 0 ]; then
      if [ ! -d "/Volumes/VOLUMENAME" ]; then
         mkdir "/Volumes/VOLUMENAME"
         chown LOCALLOGIN:staff "/Volumes/VOLUMENAME"
      fi
     su LOCALLOGIN -c "/sbin/mount -t afp afp://YOURLOGIN:PASSWORD@IP_ADDRESS/VOLUMENAME /Volumes/VOLUMENAME"
   fi
else
   echo "Already mounted"

fi

Sie müssen die Variablen in allen oben genannten GROSSBUCHSTABEN ändern.

YOURLOGIN (Your login on the NAS)
PASSWORD (Your password on the NAS)
LOCALLOGIN (Your local login on the MAC machine)
IP_ADDRESS (the IP ADDRESS of the NAS)
VOLUMENAME (The Volume Name on the NAS)

Unmounten Sie das Netzwerkvolume, das Sie zuvor gemountet haben, und führen Sie dann Folgendes aus:

chmod 755 remount.sh
sudo ./remount.sh

Stellen Sie sicher, dass dies das Volume OK bereitstellt. Es funktionierte gut auf meinem MacBook, auf dem Sierra gegen eine Apple Time Capsule ausgeführt wurde.

Wenn jetzt alles in Ordnung ist, fügen wir es zu cron hinzu, um es alle 15 Minuten als root (sudo) auszuführen.

sudo crontab -e

Fügen Sie so etwas hinzu (nach Geschmack würzen):

*/15 * * * * /Users/warren/remount.sh >> /Users/warren/remount.log 2>&1

Sie werden feststellen, dass ich das Skript in meinem Home-Verzeichnis gespeichert habe. Wenn Sie ordentlich sind, möchten Sie es wahrscheinlich nicht dort speichern.

Trennen Sie das Volume und warten Sie 15 Minuten und prüfen Sie, ob es wieder angezeigt wird. Wenn nicht, sehen Sie sich die Protokolldatei an, um zu sehen, was los ist.

Geniale Lösung, danke, ich habe das damals verwendet, aber es verpasst, Ihnen zu antworten oder die Antwort zu markieren. Danke schön.