¿Cómo descargo recursivamente un directorio usando smbclient?

22

Cuando intento buscar un directorio con get "Path To\Directory\", obtengo el siguiente error:

NT_STATUS_FILE_IS_A_DIRECTORY opening remote file Path To\Directory

¿Cómo descargo recursivamente este directorio?

(Usando smbclient v3.6.23. El servidor es una computadora con Windows 7 Home Edition).

hololeap
fuente
smbclient usa el mismo tipo de semántica que los clientes de servidor como FTP y HTTP, donde cada uno obtiene o coloca un archivo como destino. puede escribir scripts para realizar recuperaciones por directorio, o puede usar los comandos mget / mput para especificar una máscara o comodín para recuperar múltiples archivos, como se muestra en mi respuesta. puede ser que smbclient no sea la herramienta adecuada para sus propósitos.
Frank Thomas

Respuestas:

50

por la página de manual smbclient , es necesario utilizar el mgetcomando, con un maske recursiony promptconjunto. Luego cdal directorio que desea obtener de forma recursiva

    smbclient '\\server\share'
    mask ""
    recurse ON
    prompt OFF
    cd 'path\to\remote\dir'
    lcd '~/path/to/download/to/'
    mget *

o, todo en una línea,

smbclient '\\server\share' -N -c 'prompt OFF;recurse ON;cd 'path\to\directory\';lcd '~/path/to/download/to/';mget *'

si necesita autenticarse en el servidor, suelte -N y use la configuración de Contraseña en el comando de conexión.

http://technotize.blogspot.com/2011/12/copy-folder-with-ubuntu-smb-client.html

Frank Thomas
fuente
2
Además, creo que tienes tus citas un poco confusas en la línea. smbclientParece que solo me gusta tratar con directorios en "comillas dobles".
c24w
Solo copié y reemplacé las carpetas pero no funcionó - termina con el final>
Wax Cage
Para las personas que realmente quieren copiar sin problemas, siga este artículo: indradjy.wordpress.com/2010/04/14/… (me ayudó)
Wax Cage
0

use la opción -D para configurar el Directorio

smbclient -D "\" -c ls
smbclient -D "\Path\To\Directory" -c ls

si desea descargar / obtener el archivo, haga

smbclient -D "\Path\To\Directory" -c "get target /tmp/target"
aGuegu
fuente