Wie kann ich Automator dazu bringen, ein Netzwerkvolume bereitzustellen?

12

Ich schreibe ein Automator- "Skript", das sich rsyncauf meinem 10.6.3 MacBook Pro befindet, auf meinen Ubuntu 10.10 HTPC. Ich kann Automator dazu bringen, mein Shell-Skript für rsyncBefehle auszuführen, aber ich kann Automator nicht dazu bringen, die drei Volumes auf dem HTPC (Ordner für Musik, Videos und Bilder) bereitzustellen.

Ich mounte diese Volumes automatisch, wenn ich mich anmelde (diese Computer stellen eine Verbindung über ein WLAN-Netzwerk her), aber manchmal werden die HTPC-Volumes nicht gemountet, sodass ich standardmäßig erneut mounten möchte.

Gibt es eine Möglichkeit, die Volumes in Automator bereitzustellen? Ich bin auch offen für Shell-Scripting. Vielen Dank!

Richard Herron
quelle

Antworten:

9

Ich erstelle ständig solche Automator-Workflows. Sie benötigen nur zwei Aktionen, und beide sind Aktionen für Dateien und Ordner.

1) Geben Sie die angegebenen Server an. Auf diese Weise können Sie eine Liste der Freigaben erstellen, zu denen eine Verbindung hergestellt werden soll. Wenn Sie es über Finder -> Los -> Mit Server verbinden zuordnen können, können Sie dies verwenden.

2) Stellen Sie eine Verbindung zu Servern her. Dadurch wird eine Verbindung zu allen Servern hergestellt, die an ihn übergeben wurden (entweder von angegebenen Servern oder von der Frage nach Servern).

Ben Wyatt
quelle
+ stimmte zu: Genau so mache ich es in einem rsync-Workflow, den ich zum Synchronisieren einer iTunes-Mediathek verwende. Stellen Sie sicher, dass Sie Volumes auswerfen verwenden, wenn das Netzwerklaufwerk nach Abschluss des Workflows nicht verbunden bleiben soll.
Robert S Ciaccio
1
Das Auswerfen von Volumes ist auch praktisch, wenn Sie einen "umgekehrten" Workflow wünschen. Ich verwende das oben beschriebene Verfahren als Teil eines Workflows, den ich bei der Arbeit ausführe (Programme öffnen, eine Verbindung zu Servern herstellen und sogar eine Remote-Verbindung zu einer virtuellen Maschine herstellen). Am Ende des Tages habe ich einen anderen, der alle meine Server trennt und alle meine Programme beendet.
Ben Wyatt
6

Ich verwende das folgende Applescript, um Verzeichnisse in Verbindung mit MarcoPolo bereitzustellen, sodass Netzwerkfreigaben automatisch bereitgestellt werden, wenn ich sowohl in meinem Büro als auch zu Hause bin.

Sie müssen USERNAME, PASSWORD, SERVER / SHARENAME und möglicherweise smb: // abhängig von Ihrem Servertyp ändern.

tell application "Finder"
    try
        mount volume "smb://USERNAME:PASSWORD@SERVER/SHARENAME"
        delay 1
    end try
end tell

UPDATE : Eine Option ohne MarcoPolo: Sie können zuerst den Server anpingen und nur dann versuchen, eine Verbindung herzustellen, wenn Sie eine Antwort erhalten. Sie können dieses Skript dann zu Ihren Anmeldeelementen hinzufügen

(Angenommen, Sie versuchen, eine Verbindung zu einem Server mit dem Namen "some_server" herzustellen.)

-- (0) Check to see if there server exists by pinging it
set max_retry to 60
set k to 0
repeat while (do shell script "ping -c 1 some_server") contains "100% packet loss"
    delay 5
    set k to k + 1
    if k > max_retry then error "Server is not responding for predefined period." number 8000
end repeat

-- (1) It exists, mount the volume
tell application "Finder"
    try
        mount volume "smb://USERNAME:PASSWORD@some_server/SHARENAME"
        delay 1
    end try
end tell
Jason
quelle