11 votes

Comment exécuter Applescript sur un montage de disque ?

Je veux exécuter un Applescript lorsque je monte un disque spécifique. Peu importe que le script soit situé sur le disque ou non, il doit juste s'exécuter lorsque OS X monte le disque.

J'ai essayé d'accomplir ceci avec des actions de dossier, mais il semble qu'il ne soit pas possible de le faire de cette façon.

Clarification :

  1. Je rentre à la maison avec mon Macbook
  2. Je branche mon Hub USB sur l'appareil
  3. Les disques externes sont montés dans OS X
  4. Mon Applescript est exécuté, fait des choses sur ces disques.

Je veux automatiser l'étape 4.

12voto

Aidan Ryan Points 5056

La solution probablement la plus robuste consiste à créer un launchd travail avec le StartOnMount la propriété est réglée sur -boolean YES :

StartOnMount <boolean>
Cette clé optionnelle fait en sorte que le travail soit lancé chaque fois qu'un système de fichiers est monté.

C'est ainsi que Time Machine procède (voir /System/Library/LaunchDaemons/com.apple.backupd-attach.plist ).

4voto

Mike Polen Points 3173

Vous ne mentionnez pas sous quel contexte vous montez le disque, mais que diriez-vous de faire l'inverse et de monter le disque avec l'Applescript ?

Je mentionne le contexte parce que lors du montage d'un disque avec Applescript est la grande mise en garde que si c'est un volume réseau, et le réseau est protégé par un mot de passe, alors le nom d'utilisateur et le mot de passe devraient être stockés en texte clair dans le script pour une exécution sans faille.

UPDATE : En cherchant un peu, j'ai trouvé une question similaire ailleurs. Essentiellement, un script peut être fait pour faire cela en appliquant le script comme une action de dossier à /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

3voto

Utilisez une FolderAction du Finder qui surveille /Volumes. Lorsqu'un nouveau dossier apparaît, cela signifie qu'un nouveau disque a été attaché. Maintenant, votre FolderAction peut exécuter une action Automator, un AppleScript ou un script du shell pour faire votre truc.

1voto

MarcoPolo peut effectuer des actions basées sur l'attachement au disque.

0voto

kraymer Points 2642

Une solution serait de créer une application Automator enchaînant les 3 actions suivantes :

  • Obtenir les éléments spécifiés de l'explorateur
  • Monter une image disque
  • Exécuter AppleScript

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X