4 votes

Expulser tous les lecteurs réseau via Applescript/Automator/Shell?

J'utilise le script suivant pour tenter d'éjecter tous les disques qui ne sont pas internes :

tell application "Finder"
    eject (disks whose ejectable is true)
end tell

Cela a l'avantage de sauter des volumes comme MobileBackups ainsi que plusieurs autres.

Malheureusement, cela n'éjecte pas les partages réseau.

Y a-t-il un moyen d'obtenir les partages réseau connectés en AppleScript ?

En bonus, idéalement cela devrait sauter des choses comme les disques optiques également.

EDIT : Les deux réponses jusqu'à présent ont partagé des moyens d'éjecter des disques réseau spécifiques. Bien sûr, c'est facile et je sais comment le faire. Ce que je demande spécifiquement, c'est un moyen de tenter d'éjecter chaque disque autre que les disques internes du système, quel que soit leur nom.

2voto

cmason Points 4861

J'utilise Automator. J'ai inséré 'Obtenir des éléments Finder spécifiés', et j'ai nommé les disques cibles que je voulais 'Obtenir'. Seuls ceux qui sont nommés sont choisis, mais les lecteurs réseaux fonctionnent. Ensuite, je relie cela à 'Éjecter le disque'.

C'est tout.

entrer la description de l'image ici

1voto

Vic Points 1820

Facilement fait en utilisant l'option -t de la commande umount. Depuis la page de manuel que vous pouvez lire en utilisant man umount:

-t type
             Est utilisé pour indiquer que les actions ne doivent être effectuées que sur des systèmes de fichiers du type spécifié. Plus d'un type peut être spécifié
             dans une liste séparée par des virgules. La liste des types de systèmes de fichiers peut être
             préfixée par ``no'' pour spécifier les types de systèmes de fichiers pour lesquels
             l'action ne doit pas être effectuée. Par exemple, la commande umount:

                   umount -a -t nfs,hfs

Donc,

do shell script "/sbin/umount -a -t nfs,smbfs"

devrait démonter tous les partages NFS et Windows/Samba montés.

MODIFICATION : Vous voudrez peut-être également utiliser l'option -f pour forcer l'action. Consultez la page de manuel pour plus de détails.

MODIFICATION 2 : Désolé, umount ne se comporte pas comme annoncé, du moins sur mon Snow Leopard. Je le ferais comme ça en pensant à changer msdos par votre type de système de fichiers souhaité:

set mounts to {}
set mounts to paragraphs of (do shell script "mount | grep msdos | cut -d ' ' -f3")

# Démonter les systèmes de fichiers non occupés
répéter avec le montage dans les montages
    set pid to (do shell script "fuser -c " & montage)
    if pid est égal à "" then
        # Nous utilisons diskutil car la commande umount unix classique nécessite sudo/mot de passe
        do shell script "diskutil umount " & montage
    end if
fin répéter

En espérant que cela aide

0voto

SaxDaddy Points 343

Ou vous pourriez simplement appeler la commande shell...

do shell script "/usr/sbin/diskutil unmount /Volumes/some_network_share"

Notez que cela pourrait échouer si vous avez des fichiers ouverts, donc vous pouvez ajouter force comme suit

do shell script "/usr/sbin/diskutil unmount force /Volumes/some_network_share"

0voto

Adam Points 49

L'utilitaire en ligne de commande /sbin/umount peut être une autre solution à ce que vous cherchez. Le Mac OS garde un alias de chacun de vos disques montés dans un dossier /Volumes. Vous pouvez en profiter et démonter un lecteur répertorié là :

$ umount /Volumes/Video

Vous voudrez peut-être créer un script shell qui répertorie le contenu de /Volumes et tente de les éjecter tous, comme celui-ci :

for var in `ls /Volumes` ; do
echo Ejecting /Volumes/$var
umount /Volumes/$var
done

Cela échouera cependant à éjecter les lecteurs qui ne peuvent pas être éjectés, comme le disque de démarrage actuel.

0voto

grg Points 181593

Cela éjectera uniquement tous les volumes réseau :

$ find /Volumes -maxdepth 1 -not -user root -print0 | xargs -0 umount

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