今回は、「smbclient」のファイル転送コマンド(「mput」など)を使用するとき、ファイル名を確認しないでファイル転送する方法を紹介していきます。
検証環境
検証に使用した環境/ライブラリを次に記載します。
- smbclient
- バージョン:3.6.23-14.el6_6
ファイル転送
ファイル名を確認する
ファイル名が確認される方法は、ファイル転送のコマンドだけを実行します。実行例は、次のようになります。
【実行例】
$ smb: \> mput *.txt
Put file example.txt?
実行例では、「Put file ...」と表示されファイル名が確認される動作になります。
ファイル名を確認しない
ファイル名が確認されない方法は、ファイル転送のコマンドを実行する前に「prompt」コマンドを実行します。実行例は、次のようになります。
【実行例】
$ smb: \> prompt off
$ smb: \> mput *.txt
putting file example.txt
実行例では、「putting file ...」と表示されファイル名が確認されない動作になります。「prompt」コマンドの詳細については、次の使用方法の資料も確認してみてください。
mgetとmputコマンドの操作において、ファイル名の確認を行うかどうかの設定を切り換える。
この設定が ON であると、これらのコマンドの実行中、各ファイルごとに転送するかどうかをユーザーに確認する。設定が OFF であると、指定された すべてのファイルが確認なしに転送される。
http://www.samba.gr.jp/project/translation/3.6/htmldocs/manpages-3/smbclient.1.html
スクリプトで利用する
スクリプトなどで使用するときは、接続とあわせてコマンドを実行する「-c」オプションを使用することができます。複数のコマンドもまとめて実行できます。複数のコマンドを指定する場合は、「;(セミコロン)」で区切ります。
ファイル名が確認されない方法のファイル転送を実施するときのコマンドの実行例は、次のようになります。
【実行例】
$ smbclient --user=user%password -c="prompt off;mput *.txt" //192.168.0.1/share
putting file example.txt
実行例では、「-c」オプションに「prompt off」、「mput」の順番で指定することで、ファイル名を確認しないでファイル転送をすることができます。
まとめ
「smbclient」を使用してファイル転送をするときに、ファイル名を確認されない方法を紹介しました。