シェルスクリプトを使用して、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/directory
Windowsでコピーが表示されるように、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