web-dev-qa-db-ja.com

smbclientを使用してディレクトリを再帰的にダウンロードするにはどうすればよいですか?

get "Path To\Directory\"を使用してディレクトリをフェッチしようとすると、次のエラーが発生します。

NT_STATUS_FILE_IS_A_DIRECTORY opening remote file Path To\Directory

このディレクトリを再帰的にダウンロードするにはどうすればよいですか?

(smbclient v3.6.23を使用。サーバーはWindows 7 Home Editionを実行しているコンピューターです。)

27
hololeap

smbclient manpage に従って、mgetおよびmaskrecursionを設定してPromptコマンドを使用する必要があります。次に、cdを再帰的に取得するディレクトリに

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

または、すべて1行で、

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

サーバードロップ-Nで認証し、接続コマンドでパスワード設定を使用する必要がある場合。

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

56
Frank Thomas

tarに対してsmbclientコマンドを使用することもできます。

smbclient -Tc allfiles.tar /path/to/directory

これにより、現在のディレクトリにsmbclientコマンドが実行され、tarアーカイブallfiles.tarが作成されます。その後、tar xf allfiles.tarを使用してファイルを再度解凍できます。

0
m13r

-Dオプションを使用してディレクトリを設定する

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

ファイルをダウンロード/取得したい場合は、

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