1 votes

Comment monter et nommer un volume s'il n'est pas déjà monté avec un script de démarrage

Je cherche à faire quelque chose que je pensais être simple, mais après avoir fait des recherches dessus, j'ai l'impression d'être à mi-chemin vers raser un yak, alors je demande des conseils. Je veux créer un script qui me permet à moi et à mes collègues de faire des recherches normales dans Spotlight sur un lecteur partagé, ce qui ne semble pas être facile et est mieux résolu avec un script qui :

Les parties en gras sont les parties avec lesquelles j'ai des difficultés.


Problèmes particuliers que je rencontre :

  • J'ai trouvé une manière d'AppleScript de monter un lecteur s'il n'est pas déjà monté - vérification de name of every disk puis mount volume "path://to/volume" - mais cela ne me permet pas de spécifier le nom, et je suis prudent quant à savoir comment le Mac nommera automatiquement un chemin sur un lecteur partagé non-Mac. Je veux définir le nom du volume pour pouvoir y faire référence lorsque je dis à Spotlight quel volume indexer, ce qui semble impossible en AppleScript ?
  • J'ai trouvé une manière de script shell de monter un lecteur vers un volume spécifique, mais j'ai lu (je ne trouve plus la source maintenant, je cherche) que le volume doit déjà exister, ce qui me perturbe (dois-je créer un volume vide? Je ne comprends pas très bien ce qu'un volume vide serait) ; et je ne vois pas comment vérifier s'il n'a pas déjà été monté automatiquement.

Mon niveau de connaissance des volumes Mac, etc. est assez bas, donc je suis conscient que j'aurais pu mal comprendre l'une des choses ci-dessus.

0 votes

Je vois maintenant quelques exemples d'AppleScript mount semblant utiliser & nameVar pour définir le nom, mais cela semble contredire ce que j'ai lu ailleurs - par exemple hints.macworld.com/article.php?story=20120211184732735

1voto

William T Froggard Points 5321

OS X suit ces étapes lors du montage d'un lecteur : Il crée un périphérique brut dans /dev/ (uniquement pour les disques locaux), il crée un dossier dans /Volumes/, puis il monte le lecteur dans ce dossier qu'il vient de créer. C'est probablement cette étape de création de dossier que vous avez lue. Le script shell que vous avez lié manque la commande suivante :

mkdir /Volumes/somenetworkdir

Ensuite, la commande que vous avez liée fonctionnera, avec les paramètres appropriés

mount -t smbfs -o username=RemoteUser //REMOTEHOST/directory /Volumes/somenetworkdir

0 votes

Alors, puis-je vérifier si le volume existe déjà en vérifiant si le répertoire existe déjà dans Volumes? En supposant que lorsqu'il n'est pas monté, il sera supprimé? Ou n'est-ce pas aussi simple?

0 votes

OS X supprimera le répertoire lorsqu'il démonte le lecteur, oui. La seule fois où il peut ne pas le faire, c'est si le système s'arrête de manière inappropriée, l'empêchant de supprimer le répertoire normalement.

0 votes

Vous pouvez essayer d'exécuter "rmdir /Volumes/somenetworkdir" d'abord si vous voulez être certain que le répertoire n'existe pas lorsque le script s'exécute, bien que vous devriez vérifier d'abord pour éviter les erreurs ! Ou simplement vérifier d'abord si le répertoire existe avant d'exécuter "mkdir". C'est probablement l'idéal.

1voto

fartheraway Points 4886
set mountedVolumes to do shell script "ls /Volumes/"

if (mountedVolumes contains "thisDriveName") is false then

        mount volume "afp://thisUsername:thisPassword@thisIPorHostname/thisDriveName"

end if

0voto

mivk Points 807

Vous pouvez vérifier si un volume est monté en vérifiant la sortie de la commande mount :

mount | grep '/Volumes/NomDuVolume'

Et vous pouvez le monter avec open smb://.... Ainsi, votre script pourrait ressembler à quelque chose comme ceci

#!/bin/bash

serveur=mon_serveur
partage=UnPartage
utilisateur=mon_nom_utilisateur
pass=mon_mot_de_passe

# ...

mount | grep -q "/Volumes/$partage " || open smb://$utilisateur:$passe@$serveur/$partage

# ...

La commande open smb://... le montera sous le nom du partage.

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