Come posso scaricare ricorsivamente una directory usando smbclient?


22

Quando provo a recuperare una directory con get "Path To\Directory\", ottengo il seguente errore:

NT_STATUS_FILE_IS_A_DIRECTORY opening remote file Path To\Directory

Come posso scaricare ricorsivamente questa directory?

(Utilizzando smbclient v3.6.23. Il server è un computer che esegue Windows 7 Home Edition.)


smbclient utilizza lo stesso tipo di semantica utilizzato dai client server come FTP e HTTP, in cui ognuno ottiene o inserisce come target un file. puoi scrivere script per eseguire i recuperi per directory, oppure puoi usare i comandi mget / mput per specificare una maschera o un carattere jolly per recuperare più file, come mostrato nella mia risposta. può darsi che smbclient non sia proprio lo strumento giusto per i tuoi scopi.
Frank Thomas,

Risposte:


50

per la manpage smbclient , è necessario utilizzare il mgetcomando, con a maske recursione promptset. Quindi cdnella directory che desideri ottenere in modo ricorsivo

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

o, tutto su una riga,

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

se è necessario eseguire l'autenticazione sul server drop -N e utilizzare l'impostazione Password sul comando connect.

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


2
Inoltre, penso che tu abbia un po 'confuso le tue citazioni in una riga. Il mio smbclientsolo mi piace avere a che fare con le directory in "virgolette doppie".
24

Ho appena copiato e sostituito le cartelle ma non ha funzionato - termina con il trascinamento>
Wax Cage

Per le persone che vogliono davvero copiare senza problemi segui questo articolo: indradjy.wordpress.com/2010/04/14/… (mi ha aiutato)
Wax Cage

0

utilizzare l'opzione -D per impostare la directory

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

se vuoi scaricare / ottenere il file, fallo

smbclient -D "\Path\To\Directory" -c "get target /tmp/target"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.