5 votos

Montar recursos compartidos smb de Windows en un Mac usando Python

Me gustaría crear un script de Python que monte un recurso compartido smb de Windows en un Mac y luego copie los datos en él. Estoy cayendo en el primer obstáculo, teniendo problemas con el montaje del recurso compartido. Debería ser muy fácil pero no consigo que funcione. He buscado en internet y tengo algunas pistas:

mount -t smbfs //user@server/sharename share

Esto no funciona pero he visto otra solución que utiliza el módulo os para el comando mount:

import os
os.system("mount -t smbfs //user@server/sharename share")

Pero esto tampoco funciona.

También he leído sobre la creación de un punto de montaje local para que el recurso compartido remoto se monte en él. ¿Es esto cierto? ¿Y cómo puedo hacer esto?

Muchas gracias por cualquier idea

Todo lo mejor

John

0 votos

Ese programa de Python hace exactamente lo mismo que la línea de comandos

3voto

bird2920 Puntos 3

Creo que, con la ayuda de Tony Williams, lo he descubierto. Mi montaje de un recurso compartido smb de Windows Python script:

import os
directory = "/Users/user.name/foldername"
if not os.path.exists(directory): os.makedirs(directory)
os.system("mount_smbfs //user.name:password@server/servershare ~/foldername")

Esto comprobará si existe una carpeta local llamada "nombre de la carpeta" y la creará si no existe. Luego montará el recurso compartido smb en ella usando un nombre de usuario/contraseña definidos.

2voto

hmqcnoesy Puntos 4080

Esta es una respuesta similar, y una que terminé usando yo mismo.

import os

os.system("osascript -e 'mount volume \"smb://Server/Share\"'")
#Do my important functions
os.system("umount /Volumes/Share")

Los pros son:

  1. Utiliza las credenciales del llavero del usuario actual
  2. Despertará un Mac dormido para conectarse al recurso compartido smb
  3. Creará/borrará automáticamente el directorio de archivos adjuntos en /Volúmenes

Los contras son:

  1. Probablemente tengas que adjuntar manualmente el recurso compartido a través de Finder la primera vez. Esto establecerá las credenciales en el llavero.
  2. Puede que esto no sea común, pero en uno de mis Macs, esto y open abrirá el servidor e inmediatamente lo volverá a cerrar. Luego funciona bien en un segundo intento.

Tony ha dado un buen consejo: comprueba las páginas man y luego prueba por ti mismo en un prompt de shell primero.

1voto

Milliways Puntos 1548

Te sugiero que empieces a configurar la red mediante las Preferencias del Sistema.

Vaya a Preferencias del Sistema/Red/Wi-Fi (o Ethernet)/Avanzado/WINS y configure su grupo de trabajo para que coincida con el grupo de trabajo de Windows

A continuación, vaya a Finder/Go/Connect to Server

Intente conectarse usando smb://nombre de servidor

Una vez que puedas conectarte puedes intentar automatizar.

1 votos

Gracias por su respuesta. Quería que el script montara el recurso compartido y luego lo desmontara, no que yo lo hiciera manualmente. Gracias de nuevo.

0voto

Tony Williams Puntos 4903

Lo primero que hay que hacer es intentar que funcione en la línea de comandos.

¿Qué sucede cuando lo intentas en la línea de comandos?

La primera cosa que puedes notar es que mount es probable que pida la contraseña para el usuario "user", lo que no puede hacer fácilmente en un script de Python. Lo siguiente es que "share" tiene que existir listo para ser un punto de montaje y existir en el directorio que Python piensa que es el directorio de trabajo actual ya que no le diste una ruta completa.

Yo usaría mount_smbfs en lugar de mount. Revisa la página del manual de este comando. Tendrías una línea de comandos algo así :

mount smbfs //user:password@server.example.com/sharename /Volumes/Share

asumiendo que /Volumes/Share existe como directorio.

0 votos

Gracias por su ayuda. Sí, puedo ejecutar el script en el terminal y monta el recurso compartido smb en el recurso compartido local definido (he utilizado ~/CarpetaCompartida en lugar de /Volúmenes/Compartido). Como estoy autenticado en el dominio, no me aparece el aviso de la contraseña. El mount_smbfs funcionó tan bien como el mount -t smbfs. Gracias de nuevo

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