Come posso far sì che Automator monti un volume di rete?

12

Sto scrivendo uno "script" di Automator che rsync s media sul mio MacBook Pro 10.6.3 al mio HTPC Ubuntu 10.10. Posso fare in modo che Automator esegua il mio script di shell per i comandi rsync , ma non riesco a far sì che Automator monti i tre volumi su HTPC (cartelle per musica, video e immagini).

Io monto automaticamente questi volumi quando effettuo il login (questi computer si connettono tramite una rete wifi), ma a volte i volumi HTPC vengono smontati, quindi mi piacerebbe montare di nuovo per impostazione predefinita.

C'è un modo per montare i volumi in Automator? Sono aperto anche allo scripting di shell. Grazie!

    
posta Richard Herron 19.10.2010 - 19:58
fonte

2 risposte

9

Costruisco continuamente flussi di lavoro di automator come questo. Hai solo bisogno di due azioni, e sono entrambi File e amp; Azioni per le cartelle.

1) Ottieni server specificati. Questo ti consentirà di creare un elenco di condivisioni a cui connettersi. Se puoi mapparlo da Finder - > Vai - > Connetti al server, puoi usare questo.

2) Connetti ai server. Si connetterà a tutti i server passati (sia da ottenere server specificati o da chiedere server).

    
risposta data 19.10.2010 - 20:14
fonte
5

Uso il seguente applescript per montare le directory insieme a MarcoPolo in modo che le condivisioni di rete vengano montate automaticamente quando arrivo a sia nel mio ufficio che a casa.

Dovrai modificare USERNAME, PASSWORD, SERVER / SHARENAME e possibilmente smb: // a seconda del tipo di server.

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

UPDATE : un'opzione senza MarcoPolo: puoi prima eseguire il ping del server e provare a connetterti solo se ricevi una risposta. Puoi quindi aggiungere questo script ai tuoi elementi di accesso

(supponiamo che tu stia cercando di collegarti a un server chiamato "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
    
risposta data 19.10.2010 - 22:23
fonte

Leggi altre domande sui tag