Tengo una carpeta en un recurso compartido de red que funciona muy bien en Windows. Es básicamente un índice de otros servidores de archivos disponibles. Se ve algo como esto:
\\server1\directory
Server2.lnk <-(links to \\server2\files)
Server3.lnk <-(links to \\server3\files)
Server4.lnk <-(links to \\server4\files)
Estoy tratando de replicar esta funcionalidad en macOS, pero me he encontrado con estos problemas:
Me conecté a //server2/files
través Finder
de Go -> Connect to Server
. Una vez que me conecté Finder
, creé un Alias
uso para la //server2/files
carpeta. Luego lo copié Alias
en la //server1/directory
ubicación. Funciona Alias
... siempre y cuando esté usando la misma computadora desde la que creé el archivo Alias
. Pero si trato de usarlo desde otra mac, falla.
La otra Mac ni siquiera parece reconocer el archivo como un Alias
archivo. Tiene un ícono similar a un terminal
ícono, y cuando hago doble clic en él, la mac me dice que no hay una aplicación definida para abrir el archivo. Me di cuenta de que el Alias
archivo original creado no parece tener ningún tipo de extensión, por lo que no estoy seguro de cómo se supone que una Mac diferente lo reconozca como un Alias
archivo.
Lo bueno de un .lnk
archivo de Windows es que parece funcionar de manera confiable y consistente sin importar desde qué máquina se .lnk
acceda, mientras que un Alias
archivo de Mac parece depender de alguna manera de alguna configuración de la máquina original donde se creó.
Por ejemplo, si abro el Alias
archivo en vi
, puedo ver entre el código distorsionado que incluye al menos el nombre de usuario utilizado para acceder al recurso compartido, mientras que quiero que cada usuario que haga clic en acceda al recurso compartido Alias
con sus propias credenciales (el mac se une a AD y los usuarios inician sesión con sus credenciales de AD). Nuevamente, esto funciona a la perfección con rutas y .lnk
archivos UNC.
Traté de hacer un script simple que monte los recursos compartidos. Así que dentro //server1/directory
creé un archivo Server2.command
con el siguiente contenido:
mkdir /Volumes/Server2
mount_smbfs //server2/files /Volumes/Server2
cd /Volumes/Server2
open .
Mi problema con esta solución es que tengo muchos servidores y muchos usuarios usando la misma máquina. Una gran cosa sobre el uso de la Connect to Server
opción en Finder es que parece "limpiar" automáticamente el /Volumes
directorio. Después de expulsar un recurso compartido, o después de finalizar una sesión, elimina la /Volumes/Sharename
carpeta correspondiente. No veo ninguna forma de lograr el mismo comportamiento si uso esta solución basada en terminal.
¿ Puede alguien darme una buena manera de replicar la .lnk
funcionalidad que he descrito anteriormente?
Sé que los enlaces de Windows funcionan a través de rutas UNC, mientras que en macOS solo puedo acceder a estos recursos compartidos de red a través de montajes, pero como veo que la opción funciona más smb
o menos como lo necesito, solo necesito una forma de usar esa misma funcionalidad , con la salvedad de que necesito automatizarlo, porque no voy a pedirles a mis Usuarios (tengo muchos Usuarios usando la misma máquina) que creen uno manualmente.afp
Connect to Server
Connect to Server
Alias
Encontré la respuesta. Debe crear un .afploc
archivo. Esto es similar a un .inetloc
archivo.
La forma más fácil de crear un .afploc
archivo:
Finder
Go -> Connect to Server
Connect to Server
ventana (p. ej.afp://server.domain.com/
afp://server.domain.com
)server.domain.com.afploc
debe ser creado automáticamente en su escritorioGo -> Connect to Server
proceso en cualquier computadora Mac.afploc
archivos que apunten a otros servidores o rutassmb://
ruta. esto crea un .inetloc
archivo que funciona de la misma manerasmb://server/share
con smb://user:password@server/share
.Para complementar la respuesta de Daniel , vale la pena señalar que estos archivos .afploc o .inetloc son simplemente archivos XML plist. Así que también podrías generarlos a mano o desde un script. Un archivo de ejemplo para un recurso compartido smb se ve así:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>URL</key>
<string>smb://server/share</string>
</dict>
</plist>
Entonces, si tiene muchos accesos directos para definir, podría tener un archivo como este:
$ cat shares.txt
server1 share1
server2 share2
server3 other-share
Y luego ejecute esto para generar archivos .inetloc para cada servidor compartido:
cat shares.txt | while read server share; do
cat <<'EOF' >"$server-$share.inetloc"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>URL</key>
<string>smb://$server/$share</string>
</dict>
</plist>
EOF
done
Mi sentimiento sobre lo que quiere lograr en Mac OS (o Unix) funciona con un enlace simbólico. Finder tiene funcionalidades por encima de las funciones integradas del sistema operativo. Supongo que un alias no funcionará con Terminal/Shell. Los enlaces simbólicos se crean en el shell, pero también funcionan de forma transparente en Finder. Pruebe el hilo Copia de seguridad del iPhone en un disco externo en Mac ... esto explica maravillosamente los enlaces simbólicos.
¡Esperanza, esto era lo que estabas buscando!
tubedogg
Daniel
smb
oafp
compartir. Solo pude crear un enlace simbólico a un punto de montaje en la computadora, lo que realmente no resuelve mi problema. Básicamente, necesito una solución de "montaje a pedido" que también incluya una función de "desmontaje a pedido". Toda la funcionalidad que necesito ya está contenida en Finder'sConnect to Server
. Básicamente, necesito una forma de llamar a esa funcionalidad desde la línea de comando o replicarla de otra manera.