Come eseguire Applescript su Disk mount


11

Voglio eseguire un Applescript quando monto un disco specifico. Non è se lo script si trova sul disco o meno, dovrebbe essere eseguito solo quando OS X monta il disco.

Ho provato a farlo con le azioni della cartella, ma sembra che non sia possibile farlo in questo modo.

Una precisazione:

  1. Torno a casa con il mio Macbook
  2. Collego il mio hub USB al dispositivo
  3. I dischi esterni sono montati in OS X
  4. Il mio Applescript viene eseguito, fa alcune cose su quei dischi

Voglio automatizzare il passaggio 4.


possibile duplicato di

Risposte:


4

Non menzioni in quale contesto stai montando il disco, ma che ne dici di andare dall'altra parte e montare il disco con l'Applescript?

Cito il contesto perché quando si monta un disco con Applescript è il grande avvertimento che se si tratta di un volume di rete e la rete è protetta da password, il nome utente e la password dovrebbero essere memorizzati come testo normale nello script per un esecuzione.

AGGIORNAMENTO: Un po 'di ricerca ha trovato una domanda simile altrove. In sostanza, uno script può essere fatto per fare questo applicando lo script come azione cartella a / Volumes:

on adding folder items to this_folder after receiving these_items
    repeat with aItem in these_items
        tell application "Finder"
            if (local volume of aItem) and (name of aItem is "[Name of Hard Drive]") then
                -- do something with the drive
                -- eject aItem
            end if
        end tell
    end repeat
end adding folder items to

Non voglio montare un disco con AS, voglio eseguire un AS quando viene montato un disco. Modificherò il mio post per renderlo più chiaro.
jsadfeew,

Ho capito la domanda, ma non credo sia possibile farlo molto facilmente. Tuttavia, ho lavorato un po 'intorno e ho trovato qualcosa che dovrebbe funzionare con un po' di modifiche per soddisfare le tue esigenze.
Philip Regan,

Ho apportato alcune piccole modifiche alla sceneggiatura. Funziona bene :)
jsadfeew,

12

La soluzione probabilmente più affidabile è quella di creare un launchdlavoro con la StartOnMountproprietà impostata su -boolean YES:

StartOnMount <boolean>
Questa chiave opzionale provoca l'avvio del lavoro ogni volta che viene montato un filesystem.

Ecco come funziona Time Machine (vedi /System/Library/LaunchDaemons/com.apple.backupd-attach.plist).


Sento che questa è la soluzione più solida, in quanto dipende solo da launchd, che è dove "questo genere di cose" risiede correttamente.
Matt,

2

Utilizzare un'azione Finder Folder che controlla / Volumi. Quando viene visualizzata una nuova cartella, significa che è stato collegato un nuovo disco. Ora il tuo FolderAction può eseguire un'azione di Automator, AppleScript o script di shell per fare le tue cose.



0

Una soluzione sarebbe quella di creare un'applicazione Automator che concatena le 3 seguenti azioni:

  • Ottieni elementi del Finder specificati
  • Montare l'immagine del disco
  • Esegui AppleScript

1
Ancora una volta, non voglio montare un'immagine o un disco con Applescript, voglio eseguire uno script quando viene montato un disco. Non riesco a trovare un modo per farlo con i tuoi passi.
jsadfeew,

Sì, vedo dopo chiarimenti che non funziona perché è il disco rigido che stai montando (e non il disco di immagine).
kraymer,

Poiché la tua risposta affronta una domanda diversa da quella che ti viene posta, dovresti considerare di eliminarla.
DanielSmedegaardBuus

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.