2 votos

¿Cómo montar muchos directorios con el mismo nombre en la LAN en /Volúmenes?

En Windows 10, a través de Explorador de Windows es posible establecer una conexión de red para un directorio remoto y gracias al Map network drive es posible mantener esa conexión mapeada con un accionamiento Si tres máquinas tienen el mismo nombre de directorio, consideremos que documentos - por lo que es posible conseguir:

M:\documents
N:\documents
W:\documents

En Mac - El Capitán - a través de:

  • Finder -> Go -> Connect to Server

¿Es posible hacer la conexión con smb://hostname/documents

Por lo tanto, el documents el directorio remoto está montado en /Volumes

/Volumes
 documents

El problema es, qué pasa si otras dos máquinas tienen el mismo documentos ¿nombre del directorio? - Considere cómo una política obligatoria de la empresa - Cómo se monta en /Volumes ? ¿Cómo reconocer cada directorio remoto montado dentro de cada máquina en la LAN? Quiero renombrar el directorio montado a través de Finder, pero no es posible.

Quiero tener en MacOS en /Volumes la siguiente estructura:

/Volumes
 192.168.1.55
    documents
 192.168.1.56
    documents
 192.168.1.57
    documents

Es para tener las rutas aisladas disponibles para ser utilizadas en algunos bash-shell scripts. ¿Cómo lograr este objetivo?

3voto

David Anderson Puntos 2189

A continuación se muestra un ejemplo de script. Este script está modelado según las acciones que realiza la aplicación Finder. Para simplificar esta respuesta, se realiza una pequeña comprobación de errores.

#!/bin/bash
sudo mkdir -p "/Volumes/${1#*@}"
sudo chown $USER:staff "/Volumes/${1#*@}"
mount -t smbfs -o nodev,nosuid  "$1" "/Volumes/${1#*@}"
mount | grep -q "/Volumes/${1#*@}" && open "/Volumes/${1#*@}"

Nota: Dado que se requiere que las carpetas se creen dentro del /Volumes la contraseña del usuario puede ser solicitada por el script.

Si el script se guarda en el archivo connect entonces la sinopsis sería la siguiente.

connect //user[:password]@server/share

A continuación se ofrece un ejemplo.

./connect //davidanderson@192.168.1.55/documents

En este ejemplo, el punto de montaje sería el siguiente.

/Volumes/192.168.1.55/documents

Para desmontar, la sinopsis sería la siguiente.

diskutil unmount /Volumes/server/share

A continuación se ofrece un ejemplo del comando para desmontar.

diskutil unmount /Volumes/192.168.1.55/documents

Comentario

Aunque la respuesta anterior está pensada para cumplir los requisitos indicados en la pregunta, la respuesta no es muy sólida. Si dos o más usuarios intentan acceder al mismo recurso compartido, el uso de la respuesta anterior dará lugar a un fallo. Básicamente, el problema es más bien que un usuario no puede utilizar el mismo punto de montaje al mismo tiempo. Una forma de evitar este problema sería colocar el punto de montaje en el $HOME/Volumes en lugar de la carpeta /Volumes carpeta. El nuevo script dado a continuación es una versión modificada del original script dado anteriormente. Este nuevo script coloca el punto de montaje en el $HOME/Volumes carpeta.

#!/bin/bash
mkdir -p "$HOME/Volumes/${1#*@}"
chmod 700 "$HOME/Volumes"
chmod +a "group:everyone deny delete" "$HOME/Volumes"
mount -t smbfs -o nodev,nosuid "$1" "$HOME/Volumes/${1#*@}"
mount | grep -q "$HOME/Volumes/${1#*@}" && open "$HOME/Volumes/${1#*@}"

Nota: Desde /Volumes no se utiliza, la contraseña del usuario no será solicitada por el script.

Si el script se guarda en el archivo connect entonces la sinopsis sería la siguiente.

connect //user[:password]@server/share

A continuación se ofrece un ejemplo.

./connect //davidanderson@192.168.1.55/documents

En este ejemplo, el punto de montaje sería el siguiente.

"$HOME/Volumes/192.168.1.55/documents"

Para desmontar, la sinopsis sería la siguiente.

diskutil unmount "$HOME/Volumes/server/share"

A continuación se ofrece un ejemplo del comando para desmontar.

diskutil unmount "$HOME/Volumes/192.168.1.55/documents"

1voto

César Puntos 595

El mount le permite especificar un punto de montaje:

sudo mount -t smbfs smb://hostname/documents /Volumes/documents-foo

Sólo cambia documents-foo a lo que quiera que se llame, y tenga en cuenta que ese directorio debe existir ya (créelo con sudo mkdir /Volumes/documents-foo si no lo hace)

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