¿Cómo puedo montar un recurso compartido SMB desde la línea de comandos?

78

Me gustaría montar un recurso compartido de red SMB desde la línea de comandos (terminal); ¿Cómo voy a hacer eso?

Estoy usando Mac OS X 10.6.4.

Eyvind
fuente

Respuestas:

71

Puede lograr esto fácilmente usando mount_smbfs(que es, de hecho, un contenedor para mount -t smbfs):

mount_smbfs //user@SERVER/folder ./mntpoint

Opcionalmente, agregue el grupo de trabajo:

mount_smbfs -W workgroup //user@SERVER/folder ./mntpoint

Podría, por supuesto, cambiar el ./mntpoint(por algo como /Volumes/smb).

Después de hacer esto, simplemente vaya ./mntpointa buscar sus datos.

Para desmontar, use el siguiente comando:

umount ./mntpoint
Studer
fuente
2
Obtengo: `mount_smbfs: error de montaje: ruta: error de entrada / salida ', mientras se monta encontrar a través de Finder-> ¿Conectar al servidor?
Ian Vaughan
¿Cómo lo hago si mi nombre de usuario tiene un @ char? Por ejemplo, cuando estoy usando una cuenta de microsoft como [email protected]? Traté de dar el nombre de usuario entre comillas simples y dobles, pero no funciona ..
Yashvit
2
Me sale este error:mount_smbfs: could not find mount point /Volumes/Share: No such file or directory
Iulian Onofrei 01 de
11
Presupuesto de man mounten OS X Yosemite:Note: You should always use the system mount command and never call mount_smbfs directly.
SSC
3
@Yashvit: Cambie la '@' a '% 40'
WGroleau
70

Use el open(1)comando y una URL:

open 'smb://username:password@server/share'

Pros: Crea el punto de montaje /Volumespara ti.

Contras: Requiere que el Finder se ejecute.

tlindner
fuente
44
Prefiero esta versión para conexiones rápidas en mi red local, allí se conocen todos los usuarios, por lo que este es un comando más simple que usar mount_smbfs, donde realmente tuve problemas con rutas inexistentes, mientras que si tuviera que conectarme a un nuevo servidor con sistema de archivos especial, o tendría que probar con otro usuario o quería un punto de montaje diferente, está bien, pero con qué frecuencia sucede esto ... ¡así que mi pulgar sube por esta solución más simple! ¡Bien hecho! Ok, soy un fanático de la Terminal que todavía tiene Finder funcionando, pero eso es como el 90% de nosotros, ¿verdad?
software hexerei
¿No Finderse abre siempre, al menos como un proceso?
Iulian Onofrei
1
@Iulian Onofrei: no, a menos que el usuario haya iniciado sesión de forma interactiva. Necesito usar el mountcomando directo en los crontrabajos. Al usar el opencomando, fallarían si la sesión interactiva se hubiera ido, por ejemplo, después de un corte de energía.
George
Además, tenga en cuenta que opensiempre sale como si tuviera éxito si pasa el comando al Finder, incluso si el comando luego no se pudo conectar a la unidad de red.
Jonathan Wren
24

Deberías echar un vistazo a la ayuda de mount:

man mount

Tras una inspección más cercana, verá que el tipo de sistema de archivos es:

mount -t smbfs //username:password@MACHINENAME/SHARENAME /SomeLocalFolderOfChoice

La contraseña (y teóricamente nombre de usuario) son opcionales.

El resultado del comando anterior será sin salida (si todo salió bien), pero a cd /SomeLocalFolderOfChoice, debería producir los resultados remotos. Tenga en cuenta que debe existir SomeLocalFolderofChoice .

También puede usar mount_smbfs para reemplazar el montaje -t smbfs.

Martin Marconcini
fuente
5

Lo que funcionó para mí para que se monten durante el arranque:

==> /etc/auto_master <==
#
# Automounter master map
#
+auto_master        # Use directory service
/net            -hosts      -nobrowse,hidefromfinder,nosuid
/home           auto_home   -nobrowse,hidefromfinder
/Network/Servers    -fstab
/-          -static
/-          auto_smb          # add this line <**********

==> /etc/auto_smb <==         # Create this if it doesn't exist <****
/(not Volumes)/Public   -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Public
/(not Volumes)/ WGroleau -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Students/wes_groleau

Por alguna razón, ni el nombre corto ni el FQDN del servidor funcionaron, así que usé 'ping (nombre) para obtener la IP. En otras palabras, DNS resolvería el nombre, pero mount_smbfs no pudo.

Y no pude poner el punto de montaje en / Volumes, porque el arranque lo eliminaría.

Una peculiaridad: después de que esto funcionó bien durante unos días, durante dos o tres días, LibreOffice, Adobe Reader y Finder no pudieron encontrar UNO de los dos recursos compartidos, pero el shell y TextEdit no tuvieron ningún problema. Después de dos o tres días de eso, misteriosamente comenzó a funcionar nuevamente.

Si realiza estas ediciones y no desea reiniciar, puede montarlas con 'auto mount -vc'

Actualización: más peculiaridades. (1) Hay dos sistemas WiFi aquí, y uno de ellos no tiene acceso a los servidores de Windows. Un par de veces a la semana, uno o ambos enrutadores se caen. Si el "bueno" se cae y el MacBook se conecta automáticamente al otro, en lugar de decirme que la unidad está fuera de línea, los controladores SMB dicen "Demasiados usuarios". (2) Un par de veces a la semana, recibo un "permiso denegado" cuando intento acceder a mis archivos de Windows. Esto generalmente dura aproximadamente media hora, durante la cual puedo ir a una barra de Windows e iniciar sesión y ver archivos con la misma ID y contraseña.

WGroleau
fuente
Dado que esto se ha votado dos veces esta semana, debo señalar que se escribió hace varias versiones de MacOS.
WGroleau
4

Usar AppleScript es conveniente porque almacena sus contraseñas en el llavero. Función bash:

function mymount
{
    osascript <<EOF
mount volume "smb://user@fqdn1/volume1"
mount volume "smb://user@fqdn2/volume2"
EOF
}

Invoque 'mymount' desde bash, ingrese las contraseñas a través de la ventana emergente Keychain estándar, y si todo va bien, los volúmenes solicitados se montarán en / Volumes.

wytten
fuente
Ese es el enfoque perfecto también. No me gusta la respuesta aprobada porque se monta como usuario root. En mi opinión, estas frases deberían ser las mejores opciones: /usr/bin/osascript -e 'mount volume "smb://username:password@server/share"'oopen /Volumes; open 'smb://username:password@server/share'
laimison
3

Agregaría que si tiene un nombre de usuario con la forma "grupo de trabajo \ nombre de usuario", debe montarlo así:

mount -t smbfs "//WORKGROUP;username:password@MACHINENAME/SHARENAME" /SomeLocalFolderOfChoice

Fuente: adaptando un ejemplo de aquí

Matthieu
fuente
-1

publicación anterior, pero ¿qué pasa con el montaje de esta manera:

smb://no_username:password@MACHINENAME 

como la máquina del tiempo conduce?

BarclayVision
fuente
1
"desde la línea de comando (terminal)" ... este no es un comando bash válido. Supongo que te refieres a Finder + ⌘K para conectarte al servidor, que no es lo que el OP preguntó.
mattmc3