16 votes

Comment faire pour que Automator monte un volume réseau ?

J'écris un Automator "script" qui rsync sur mon MacBook Pro 10.6.3 vers mon HTPC Ubuntu 10.10. Je peux faire en sorte que Automator exécute mon script shell pour rsync mais je n'arrive pas à faire monter par Automator les trois volumes sur le HTPC (dossiers pour la musique, les vidéos et les photos).

Je monte automatiquement ces volumes lorsque je me connecte (ces ordinateurs se connectent via un réseau wifi), mais il arrive que les volumes du HTPC soient démontés, j'aimerais donc pouvoir les remonter par défaut.

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

9voto

Ben Wyatt Points 2044

Je construis des flux d'automatisation comme celui-ci tout le temps. Vous n'avez besoin que de deux actions, et ce sont toutes deux des actions Fichiers et Dossiers.

1) Obtenir les serveurs spécifiés. Cela vous permettra d'établir une liste d'actions auxquelles vous pourrez vous connecter. Si vous pouvez le mapper à partir du Finder -> Go -> Connect to server, vous pouvez l'utiliser.

2) Se connecter aux serveurs. Cette fonction se connectera à tous les serveurs qui lui seront transmis (soit à partir de get specified servers, soit à partir de ask for servers).

8voto

Jason Points 1619

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

Vous devrez modifier USERNAME, PASSWORD, SERVER/SHARENAME et éventuellement smb:// selon le type de votre serveur.

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

UPDATE : Une option sans MarcoPolo : Vous pouvez d'abord envoyer un ping au serveur et n'essayer de vous connecter que si vous obtenez une réponse. Tu peux alors ajouter ce script dans ton Articles 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  --Optional, was added due to slow network issues
    end try
end tell

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