Lecteur de disque USB démonter OSX à partir du script bash Automator

1

J'ai une tâche dans automator pour effectuer ma sauvegarde, elle exécute du code de script shell, beaucoup de code fonctionne bien, mais la commande unmount ne fonctionne pas, je ne parviens pas à démonter l'unité après la sauvegarde.

J'ai vérifié que ma commande était exécutée avec succès depuis le terminal. Cela démonte bien mon lecteur, tout va bien, mais quand il s'exécute à partir de mon script bash sous automator . :(

Ma commande utilisée est: sudo diskutil unmountDisk disk3;

J'ai essayé avec et sans sudo, et j'ai le même problème.

J'ai essayé la commande diskutil eject et la même chose, elle démonte l'unité en la saisissant directement depuis le terminal, mais ce n'est pas le cas du code de script de mon automate shell.

Toute idée est la bienvenue.

bunset
la source

Réponses:

1

Lorsque vous utilisez Automator, comment entrez-vous votre mot de passe lorsque vous y êtes invité sudo? Vous n'êtes probablement pas invité si vous l'exécutez simplement de la même manière que si vous utilisiez Terminal.

Vous devrez ajouter du code AppleScript et l'exécuter via le osascriptsystème pour obtenir un mot de passe administrateur:

osascript -e 'do shell script "sudo diskutil unmountDisk disk3" with administrator privileges'
utilisateur3439894
la source
Merci, votre solution fonctionne !. Je n'avais pas besoin de sudo pour ça, donc c'est mieux. Mais parfois, mon usb change le nom de dev. Quelle commande pourrais-je utiliser pour obtenir le nom de dev associé à un nom de volume?
bunset
1
@ bunset, vous pouvez également utiliser diskutil unmountDisk $MountPoint, par exemple diskutil unmountDisk /Volumes/Untitledou diskutil unmountDisk $UUID. Voir la section DEVICES dans la diskutilpage de manuel. " Un paramètre de périphérique associé à l'une des commandes ci-dessus (sauf indication contraire explicite) est généralement l'un des éléments suivants: ", que vous pouvez lire plus avant dans la page de manuel.
user3439894