Linux上のファイルをsbmclient経由でWindowsに送信するシェルスクリプトを作成しました。
smbclient //Host_WINDOWS/D$ -U USER --pass PASSWORD -c "put /tmp/test.txt FOLDER_WINDOWS/test.txt"
それは完璧に機能します。
smbclient //Host_WINDOWS/D$ -U USER --pass PASSWORD -c "put /tmp/* FOLDER_WINDOWS"
すべてのファイルを一度に送信したいのですが、可能ですか?
ローカルの作業ディレクトリがアップロードしたいディレクトリと等しい場合にのみ、確実に機能することがわかりました。
ただし、ローカルディレクトリを指定することは可能です。
smbclient //Host_WINDOWS/D$ -W domain -U username \
-c 'Prompt OFF; recurse ON; cd remote/target/directory; lcd /local/source/directory; mput *'
インタラクティブモードでは、次のようになります。
smb: \folder\> recurse ON
smb: \folder\> Prompt OFF
smb: \folder\> lcd /local/source/directory
smb: \folder\> cd remote/target/directory
smb: \folder\> mput *
Smbclient '// Host/folder' -U user --passPasswordで接続します。
接続したら、次のように入力します。
smb: \folder\> recurse
smb: \folder\> Prompt
smb: \folder\> mput NameOfDirectoryToBeCopiedToSMBHostFolder*
注:ディレクトリ名の最後にある*を忘れないでください。