Wie lade ich ein Verzeichnis mit smbclient rekursiv herunter?


22

Wenn ich versuche, ein Verzeichnis mit abzurufen get "Path To\Directory\", wird die folgende Fehlermeldung angezeigt:

NT_STATUS_FILE_IS_A_DIRECTORY opening remote file Path To\Directory

Wie lade ich dieses Verzeichnis rekursiv herunter?

(Verwenden von smbclient v3.6.23. Der Server ist ein Computer mit Windows 7 Home Edition.)


smbclient verwendet dieselbe Art von Semantik wie Server-Clients wie FTP und HTTP, bei der jeder eine Datei abruft oder ablegt. Sie können Skripte schreiben, um Abfragen nach Verzeichnis durchzuführen, oder Sie können die Befehle mget / mput verwenden, um eine Maske oder einen Platzhalter zum Abrufen mehrerer Dateien anzugeben, wie in meiner Antwort gezeigt. Es kann sein, dass smbclient nicht ganz das richtige Tool für Ihre Zwecke ist.
Frank Thomas

Antworten:


50

In der Manpage von smbclient müssen Sie den mgetBefehl mit einem maskund recursionund promptset verwenden. Dann cdzu dem Verzeichnis, das Sie rekursiv erhalten möchten

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

oder, alles in einer Zeile,

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

Wenn Sie sich beim Server authentifizieren müssen, geben Sie -N ein und verwenden Sie die Kennworteinstellung für den Befehl connect.

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


2
Ich denke auch, dass Sie Ihre Zitate im Einzeiler ein wenig verwirrt haben. Mir smbclientscheint nur der Umgang mit Verzeichnissen in "doppelten Anführungszeichen" zu gefallen.
c24w

Nur kopiert und ersetzt Ordner, aber es hat nicht funktioniert - endet mit nachgestellten>
Wax Cage

Für Leute, die wirklich ohne Probleme kopieren möchten, folgen Sie diesem Artikel: indradjy.wordpress.com/2010/04/14/… (hat mir geholfen)
Wax Cage

0

Verwenden Sie die Option -D, um das Verzeichnis festzulegen

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

Wenn Sie die Datei herunterladen / herunterladen möchten, tun Sie Folgendes

smbclient -D "\Path\To\Directory" -c "get target /tmp/target"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.