smbclient LinuxからWindowsにコピー(SMB)

smbclient LinuxからWindowsにコピー(SMB)

シェルスクリプトを使用して、LinuxシステムからWindows(SMB)にディレクトリをコピーしようとしています。

[user@host home]$ smbclient -W WORKGROUP --user='admin%admin$123' -c "put /data/directory" "//192.168.1.1/share"
Domain=[mydomain] OS=[Windows Server] Server=[Windows Server]
/data/directory does not exist
[user@host home]$ cd /data/directory
/data/directory
[user@host directory]$ ll
File1
File2
..

問題は次のとおりです。

  • ()を使用しても-Nパスワードは承認されません。

  • これも試してください--user=admin%admin$123

コマンドからパスワードを削除し、シェルからパスワードを要求すると機能しました!

注:WindowsとLinuxの間でディレクトリを転送するために、Windowsはカールとscp用のSSHデーモンについて読みました。 WindowsまたはLinuxソフトウェアパッケージで追加のサービスを必要としない提案や簡単な方法はありますか?

答え1

/data/directoryWindowsでコピーが表示されるように、Linuxでコピーを作成するには、\\192.168.1.1\share\directory次のコマンドを使用します。

smbclient -W WORKGROUP --user='admin%admin$123' -c "lcd /data;recurse;mput directory" "//192.168.1.1/share"

理由:

  • ディレクトリとその内容をコピーするには複数のファイルをコピーするため、再帰を有効にしてrecurse使用する必要があります。mput通常のputコマンドのみが送信されます。ファイル一度にオプションで、ターゲットのレプリカに別の名前を付けることができます。
  • 初回使用時にはlcd再帰が制限されるため、コピーにはならず、\\192.168.1.1\share\data\directoryただ\\192.168.1.1\share\directory

関連情報