Jak mogę zmusić program Automator do zamontowania woluminu sieciowego?

12

Piszę „skrypt” Automatora, który rsyncjest nośnikiem na moim MacBooku Pro 10.6.3 na moim Ubuntu 10.10 HTPC. Mogę zmusić Automatora do uruchomienia mojego skryptu powłoki dla rsyncpoleceń, ale nie mogę zmusić Automatora do zamontowania trzech woluminów na HTPC (foldery z muzyką, filmami i zdjęciami).

Automatycznie montuję te woluminy po zalogowaniu (komputery łączą się za pośrednictwem sieci Wi-Fi), ale czasami woluminy HTPC są odmontowywane, więc domyślnie chciałbym ponownie zainstalować.

Czy istnieje sposób na zamontowanie woluminów w Automatorze? Jestem również otwarty na skrypty powłoki. Dzięki!

Richard Herron
źródło
Jason, czy możesz wyjaśnić, co mam zrobić na komputerze Mac, aby dodać to do „elementów logowania”, to znaczy: 1. Jak utworzyć ten skrypt? 2. Co powinienem zrobić, aby uruchomić go podczas uruchamiania na komputerze Mac? Z góry dziękuję!
sergio1974

Odpowiedzi:

9

Cały czas buduję przepływy pracy automatyzatora. Potrzebujesz tylko dwóch akcji, a obie są plikami i folderami.

1) Uzyskaj określone serwery. Umożliwi to zbudowanie listy udziałów, z którymi można się połączyć. Jeśli możesz zmapować go z Findera -> Idź -> Połącz z serwerem, możesz tego użyć.

2) Połącz się z serwerami. Spowoduje to połączenie z każdym serwerem przekazanym do niego (albo z określonych serwerów, albo z zapytaj o serwery).

Ben Wyatt
źródło
+ zgodził się: tak właśnie robię w przepływie pracy rsync, którego używam do synchronizowania biblioteki iTunes. Upewnij się, że używasz opcji Wysuń woluminy, jeśli nie chcesz, aby dysk sieciowy pozostawał podłączony po zakończeniu przepływu pracy.
Robert S Ciaccio,
1
Wysuń woluminy jest również przydatny, jeśli chcesz „odwrócić” przepływ pracy. Korzystam z procedury opisanej powyżej w ramach przepływu pracy, który uruchamiam, gdy zabieram się do pracy (otwieranie programów, łączenie się z serwerami, a nawet zdalne podłączanie do maszyny wirtualnej). Na koniec dnia mam inny, który odłącza wszystkie moje serwery i zamyka wszystkie moje programy.
Ben Wyatt
7

Korzystam z następującego skryptu Apple, aby montować katalogi w połączeniu z MarcoPolo, aby udziały sieciowe były automatycznie montowane, gdy dojdę zarówno do mojego biura, jak i domu.

Musisz zmienić USERNAME, PASSWORD, SERVER / SHARENAME i ewentualnie smb: // w zależności od typu serwera.

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

AKTUALIZACJA : Opcja bez MarcoPolo: Możesz najpierw pingować serwer i próbować połączyć się tylko, jeśli otrzymasz odpowiedź. Następnie możesz dodać ten skrypt do elementów logowania

(Załóżmy, że próbujesz połączyć się z serwerem o nazwie „some_server”)

-- (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
źródło