Comment puis-je demander à Automator de monter un volume réseau?

12

J'écris un "script" Automator qui se trouve rsyncsur mon MacBook Pro 10.6.3 sur mon HTPC Ubuntu 10.10. Je peux faire exécuter à Automator mon script shell pour les rsynccommandes, mais je ne peux pas faire monter Automator les trois volumes sur le HTPC (dossiers pour la musique, les vidéos et les images).

Je monte automatiquement ces volumes lorsque je me connecte (ces ordinateurs se connectent via un réseau wifi), mais parfois les volumes HTPC sont démontés, donc je voudrais remonter par défaut.

Existe-t-il un moyen de monter les volumes dans Automator? Je suis également ouvert aux scripts shell. Merci!

Richard Herron
la source

Réponses:

9

Je crée tout le temps des workflows d'automate comme celui-ci. Vous n'avez besoin que de deux actions, et ce sont toutes deux des actions Fichiers et Dossiers.

1) Obtenez des serveurs spécifiés. Cela vous permettra de créer une liste de partages auxquels vous connecter. Si vous pouvez le mapper à partir du Finder -> Aller -> Se connecter au serveur, vous pouvez l'utiliser.

2) Connectez-vous aux serveurs. Cela se connectera à tous les serveurs qui lui sont transmis (soit à partir de serveurs spécifiés, soit à partir de serveurs de demande).

Ben Wyatt
la source
+ convenu: c'est exactement comment je le fais dans un workflow rsync que j'utilise pour synchroniser une bibliothèque iTunes. Assurez-vous d'utiliser les volumes d'éjection si vous ne souhaitez pas que le lecteur réseau reste connecté une fois le flux de travail terminé.
Robert S Ciaccio
1
Éjecter des volumes est également pratique si vous souhaitez un workflow "inversé". J'utilise la procédure que j'ai décrite ci-dessus dans le cadre d'un flux de travail que j'exécute lorsque j'arrive au travail (programmes ouverts, connexion à des serveurs et même distant dans une machine virtuelle). À la fin de la journée, j'en ai un autre qui déconnecte tous mes serveurs et quitte tous mes programmes.
Ben Wyatt
6

J'utilise l'applescript suivant pour monter des répertoires avec MarcoPolo afin que les partages réseau soient automatiquement montés lorsque j'arrive à la fois à mon bureau et à la maison.

Vous devrez changer USERNAME, PASSWORD, SERVER / SHARENAME et éventuellement smb: // en fonction de votre type de serveur.

tell application "Finder"
    try
        mount volume "smb://USERNAME:PASSWORD@SERVER/SHARENAME"
        delay 1
    end try
end tell

MISE À JOUR : Une option sans MarcoPolo: Vous pouvez d'abord cingler le serveur et essayer de vous connecter uniquement si vous obtenez une réponse. Vous pouvez ensuite ajouter ce script dans vos éléments de connexion

(Disons que vous essayez de vous connecter à un serveur nommé "some_server")

-- (0) Check to see if there server exists by pinging it
set max_retry to 60
set k to 0
repeat while (do shell script "ping -c 1 some_server") contains "100% packet loss"
    delay 5
    set k to k + 1
    if k > max_retry then error "Server is not responding for predefined period." number 8000
end repeat

-- (1) It exists, mount the volume
tell application "Finder"
    try
        mount volume "smb://USERNAME:PASSWORD@some_server/SHARENAME"
        delay 1
    end try
end tell
Jason
la source