Quickloox

Dal mondo Apple all'universo digitale, in visualizzazione rapida dell'ovvio

21 mag 2008

AppleScript il Remoto

Apple Remote Desktop consente di controllare un Mac che sta da qualche altra parte del mondo. Ci sono vari modi per farlo gratis e pagamento, come si vede su Pure Mac. Una ragione per farlo a pagamento con Apple Remote Desktop è che Ard è scriptabile.

Per esempio, è facile dare comandi Unix a una macchina remota via Ard. Invece è un po’ complicato selezionare un Mac remoto e aprire una sessione ssh con esso (ssh trasporta comandi e dati nella sicurezza della cifratura e in modo spietatamente efficiente).

AppleScript semplifica la complicazione. Ecco come, Script Editor alla mano.

set theSSHList to {} Definiamo una variabile che conterrà una lista, in AppleScript compresa tra parentesi graffe. Al momento la lista è vuota e verrà riempita tra breve.

tell application “Remote Desktop” Come detto, il programma in gioco è Apple Remote Desktop.

     set theComputers to the selection Un’altra variabile, questa volta impostata in modo interessante a qualunque cosa venga selezionata. selection è una parola riservata di AppleScript.

     repeat with x in theComputers Fa partire un ciclo che si ripete per ciascun elemento contenuto nella variabile.

          set the end of theSSHList to Internet address of x Per ciascun computer presente nella rete, il ciclo aggiunge alla lista un indirizzo Internet, quello del computer in questione.

     end repeat Fine del ciclo.

end tell Fine della prima parte dello script. Ora abbiamo una lista che contiene tutti i computer della rete, ognuno con il proprio indirizzo Internet. Se la rete è basata su Dhcp, come accade sempre più spesso, gli indirizzi cambiano e dunque il contenuto della lista non va dato per scontato all’infinito. Periodicamente bisogna rieseguire la scansione degli indirizzi.

tell application “Terminal” Seconda parte dello script. Stavolta si dialogo con il Terminale.

     repeat with x in theSSHList Altro ciclo, con gli elementi della prima lista, che sono gli indirizzi Internet di ciascun computer.

          do script “ssh username@” & (contents of x) Il comando do script fa lavorare il Terminale per conto di AppleScript. Quest’ultimo costruisce la sintassi giusta unendo la prima parte del comando ssh all’indirizzo di ciascun computer in rete, che era appunto la parte più difficile.

     end repeat Fine del ciclo.

end tell FIne di questa seconda metà dello script.

Lo script completo è il seguente:

set theSSHList to {} tell application “Remote Desktop”      set theComputers to the selection      repeat with x in theComputers           set the end of theSSHList to Internet address of x      end repeat end tell tell application “Terminal”      repeat with x in theSSHList           do script “ssh username@” & (contents of x)      end repeat end tell

Eccezionalmente, lo script non arriva da The Unofficial Apple Weblog bensì da Bynkii.com. Ma non ci si formalizza, vero?

Commenta