1 votos

Cómo montar y nombrar un volumen si no está ya montado con un scriptde inicio

Estoy tratando de hacer algo que pensé que sería sencillo, pero después de investigarlo siento que estoy a mitad de camino hacia afeitar un yak Así que pido consejo. Quiero crear un script que me permita a mí y a mis compañeros hacer búsquedas normales de spolight en una unidad compartida, lo que por lo investigado parece no ser fácil y se resuelve mejor con un script que:

Las partes en negrita son las que me dan problemas.


Problemas particulares que estoy teniendo:

  • He encontrado una forma de AppleScript para montar una unidad si no está ya montada - comprobar name of every disk entonces mount volume "path://to/volume" - pero no me permite especificar el nombre, y soy cauteloso en cuanto a la consistencia con la que el Mac auto-nombrará una ruta en una unidad compartida que no es de Mac. Quiero establecer el nombre del volumen para poder referirme a él cuando le diga a Spotlight qué volumen debe indexar, lo que parece ser imposible en AppleScript
  • He encontrado un shell script manera de montar una unidad a un volumen específico pero he leído (no encuentro la fuente ahora, la estoy buscando) que el volumen tiene que existir ya, lo que me confunde (¿tengo que crear un volumen vacío? No entiendo muy bien qué sería un volumen vacío); y no veo cómo comprobar que no se ha montado ya automáticamente.

Mi nivel de conocimiento de los volúmenes de los Macs, etc. es bastante bajo, así que soy consciente de que puedo haber malinterpretado algo de lo expuesto.

1voto

William T Froggard Puntos 2862

OS X sigue estos pasos al montar una unidad: Crea un dispositivo raw en /dev/ (sólo para discos locales), crea una carpeta en /Volumes/, y luego monta la unidad en esa carpeta que acaba de crear. Ese paso de creación de la carpeta es probablemente lo que has leído. Al shell script que has enlazado le falta el siguiente comando:

mkdir /Volumes/somenetworkdir

Entonces el comando que enlazaste funcionará, con los parámetros adecuados

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

1voto

Tim Brigham Puntos 8727
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 Puntos 206

Puede comprobar si un volumen está montado comprobando la salida del programa mount comando:

mount | grep '/Volumes/SomeVolumeName'

Y puedes montarlo con open smb://... . Así que tu script podría ser algo así

#!/bin/bash

server=my_server
share=SomeShare
user=my_username
pass=y_password

# ...

mount | grep -q "/Volumes/$share " || open smb://$user:$pass@$server/$share

# ...

El open smb://... lo montará con el nombre del recurso compartido.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X