smbget — SMB 経由でファイルをダウンロードするための wget ライクな ユーティリティー
smbget
[-a, --guest] [-r, --resume] [--recursive] [-D, --dots] [-o, --outputfile] [-q, --quiet] [-v, --verbose] [-b, --blocksize] [-O, --stdout] [-u, --update] [-e, --encrypt] [--limit-rate=INT] [-?|--help] [--usage] [-d|--debuglevel=DEBUGLEVEL] [--debug-stdout] [-s|--configfile=CONFIGFILE] [--option=name=value] [-l|--log-basename=LOGFILEBASE] [--leak-report] [--leak-report-full] [-R|--name-resolve=NAME-RESOLVE-ORDER] [-O|--socket-options=SOCKETOPTIONS] [-m|--max-protocol=MAXPROTOCOL] [-n|--netbiosname=NETBIOSNAME] [--netbios-scope=SCOPE] [-W|--workgroup=WORKGROUP] [--realm=REALM] [-U|--user=[DOMAIN/]USERNAME%[PASSWORD]] [-N|--no-pass] [--password=STRING] [--pw-nt-hash] [-A|--authentication-file=FILE] [-P|--machine-pass] [--simple-bind-dn=DN] [--use-kerberos=desired|required|off] [--use-krb5-ccache=CCACHE] [--use-winbind-ccache] [--client-protection=sign|encrypt|off] [-V|--version] {smb://host/share/path/to/file} [smb://url2/] [...]
このツールは samba(7) スイートの一部である。
smbget は SMB サーバーからファイルをダウンロードできる、wget ライクな 使い勝手を持つシンプルなユーティリティーである。ダウンロードしたい ファイルをコマンドラインで指定することができる。
ファイルは smb-URL の書式で指定する。たとえば UNC パスで \\\\HOST\\SHARE\\file というファイルであれば、 smb://host/share/file のように指定する。
guest ユーザーとして接続する
前回中断したファイルから自動的に処理を継続する
ファイルを再帰的にダウンロードする
プログラムの進行状況をドットで表示する
出力ファイル名として別のファイル名を指定する。-R と同時には指定できない。
ダウンロードしたファイルを標準出力に出力する。
処理中にメッセージを出力しない
冗長表示を行う
ダウンロードする際の読み込み単位(バイト)。 デフォルトは 64000。
リモートファイルがローカルファイルよりも 新しいか、ローカルファイルがない場合にのみダウンロード。
SMB 暗号化を有効にする。
ダウンロード速度をこの KB/s 単位で制限する。
コマンドラインオプションの要約を表示する。
簡単な使用法を表示する。
level
は0から10までの整数値である。
このパラメータが設定されていない場合の規定の値は、
クライアントアプリケーションに対しては、1 である。
この値を大きくするほど、サーバーの動作に関するより詳細な情報が ログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告 のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況 に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ 使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されて おり、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容 となっている。
このパラメーターの指定は、${prefix}/etc/smb.conf
ファイル中の、
log level パラメーターの
指定よりも優先する事に注意。
このパラメータはデバッグ出力を STDOUT にリダイレクトする。既定では、 すべてのクライアントはログを STDERR に出力する。
クライアントが必要とする詳細な設定を含むファイルを指定する。
このファイル中にある情報は、クライアントまたはサーバに対して
一般的であるか、あるいは、
client smb encrypt
のような、クライアント固有のオプションのみを提供することが
できる。詳細については ${prefix}/etc/smb.conf
を参照のこと。既定の
設定ファイルの名前はコンパイル時に決定される。
コマンドラインから smb.conf(5) オプション "<name>" に値 "<value>" を設定する。 これはコンパイル時の既定値と設定ファイルから読み込まれた オプションを上書きする。名前または値に空白が入っていた場合、 引用符で --option=name=value 全体を囲む。
ログ/デバッグファイルのベースディレクトリ名。拡張子
".progname"
が追加される (たとえば
log.smbclient, log.smbd など)。ログファイルは
クライアントによって削除されることはない。
終了時の talloc リークレポートを有効にする。
終了時の完全な talloc リークレポートを有効にする。
プログラムのバージョン番号を表示する。
このオプションは、ホスト名と IP アドレスの名前解決のために どのようなネーミングサービスをどのような順序で使用するかを決める のに使用される。このオプションには、異なった名前解決オプションを 空白で区切って並べる。--name-resolve=NAME-RESOLVE-ORDER 全体を 引用符でくくるのがもっとも良いやり方である。
指定できるオプションは: "lmhosts", "host", "wins" and "bcast" である。 それぞれにおいて、名前解決は次のように行われる:
lmhosts
:
Samba lmhosts ファイルで IP アドレスが検索される。
lmhosts の行に NetBIOS名にアタッチされるネームタイプが
ない場合(詳細については
lmhosts(5)を参照)、ネームタイプがどれであるかは
検索結果に影響しなくなる。
host
:
システムの /etc/hosts
、NIS、
DNS ルックアップを使用した、ホスト名 - IP アドレス間の
標準の名前解決が行われる。名前解決の方法の詳細な部分は、
IRIX、Solaris といった OS によって変わる。
/etc/nsswitch.conf
で制御できる場合も
ある。この方法は、検索される NetBIOS 名のタイプが 0x20
(サーバー) である時にのみ使用できる点に注意。さもなければ
指定しても無視される。
wins
:
wins server
パラメーターに指定
された IP アドレスを持つ名前が検索される。WINS サーバーが
指定されていなければ、この方法は無視される。
bcast
:
interfaces
パラメーターに指定された
既知のローカル・インターフェースそれぞれについてブロード
キャストを行う。ターゲット・ホストがローカル接続サブネット
上にある場合にしか使えないので、最も信頼性の低い名前
解決法である。
このパラメーターが設定されなかった場合、名前解決方法の使用順序は
${prefix}/etc/smb.conf
ファイル中のパラメーター
(name resolve order)に指定されたとおりになる。
既定の順番は lmhosts, host, wins, bcast である。このパラメータがない
場合か何らかのエントリがname resolve order
the ${prefix}/etc/smb.conf
ファイル中のパラメータにある場合は、名前解決の手段は
この順で行われる。
クライアントのソケットに設定する TCP のソケットオプション。
有効なオプションの一覧については、${prefix}/etc/smb.conf
マニュアルページ
中の socket options パラメーターを参照のこと。
このパラメータの値(文字列)は、クライアントによってサポートされる、 もっとも高位のプロトコルレベルである。
ここでこのパラメータを指定すると、${prefix}/etc/smb.conf
ファイル中の
client max protocol パラメータを
上書きすることに注意。
このオプションは Samba 自身が使う NetBIOS名を上書きする。
これは、${prefix}/etc/smb.conf
ファイル中の netbios name
パラメータで設定することと同じである。しかし、コマンド行での設定は
${prefix}/etc/smb.conf
での設定よりも優先する。
nmblookup
が、通信用のNetBIOS名を生成する時に
使うNetBIOS スコープを指定する。NetBIOS スコープの詳細な利用方法に
ついては、 RFC 1001 と RFC 1002 を参照のこと。NetBIOSスコープは
ごく稀にしか利用されない。NetBIOS システム
全体を運営している管理者が、そのシステム内の相手と通信する場合にのみ、
このパラメーターを設定する。
ユーザー名の SMB ドメインを指定する。このオプションは、 smb.conf 内のデフォルトのドメイン設定よりも優先される。 ドメイン名としてサーバーの NetBIOS 名を指定すると、クライアントは (ドメインの SAM ではなく) サーバーのローカル SAM を使用して ログオンを試みる。
ここでこのパラメータを指定すると、${prefix}/etc/smb.conf
ファイル中の
workgroup パラメータを上書きすることに注意。
ドメインのレルムを指定する。
ここでこのパラメータを指定すると、${prefix}/etc/smb.conf
ファイル中の
realm パラメータを上書きすることに注意。
SMB のユーザー名、またはユーザー名とパスワードを指定する。
もしも %password を指定しないと、ユーザーにパスワードの入力を求める。
クライアントはまず初めにUSER
、LOGNAME
の
順に環境変数の存在を調べ、もしもどちらかが存在するならば、その文字列を
大文字にする。環境変数が存在しない場合、ユーザー名として
GUEST
が用いられる。
このほかに、平文のユーザー名とパスワードを記述した認証ファイルを使用する
3番目のオプションがある。このオプションは主にスクリプト向けに用意されて
おり、認証情報をコマンドラインや環境変数に含めたくない場合に有用である。
このオプションを利用するときは、ファイルのパーミッションを確認し、ほかの
ユーザーから参照されないように注意すること。詳細は
-A
オプションを参照のこと。
パスワードをスクリプトに含める場合は注意すること。セキュリティを確保する ため、必要に応じてクライアントにパスワードを要求させることを推奨する。
このオプションを指定すると、クライアントはユーザーへの パスワード入力要求をしなくなる。パスワードが必要ないサービスに アクセスするときに有用である。
コマンドラインにパスワードが指定されておらず、このオプションも指定 されていないと、クライアントはパスワードを要求する。
もしも、パスワードがコマンドライン上で指定され、このオプションも 定義されていた場合、コマンドライン上のパスワードは無視され、 パスワードは使われない。
コマンド行上でパスワードを指定する。
パスワードをスクリプトに含める場合は注意すること。セキュリティを確保する ため、必要に応じてクライアントにパスワードを要求させることを推奨する。
提供したパスワードは NT ハッシュである。
このオプションは、指定したファイルから、接続時に使用する ユーザー名とパスワードを読み込むために使用する。 ファイルの形式は次の通り:
username = <value> password = <value> domain = <value>
ファイルのパーミッションを確認し、他のユーザーから参照されない ように注意すること。
保存されたマシンパスワードアカウントを使用する。
シンプルバインドで使う DN。
このパラメータは、Samba クライアントツールが Kerberos を 使って認証を試みるかを決定する。Kerberos 認証では、サービスに 接続する際、IP アドレスではなく、DNS 名を使用する必要がある。
ここでこのパラメータを指定すると、${prefix}/etc/smb.conf
ファイル中の
client use kerberos パラメータを
上書きすることに注意。
Kerberos認証用の資格情報キャッシュの場所を指定する。
これは --use-kerberos=required も同時に設定する。
winbindによってキャッシュされた資格情報を使うようにする。
クライアントツールが使うべき接続の保護を設定する。
ここでこのパラメータを指定すると、${prefix}/etc/smb.conf
ファイル中の
client protection パラメータを
上書きすることに注意。
さらに細かな制御が必要な場合は、以下を使用できる:
--option=clientsmbencrypt=OPTION
,
--option=clientipcsigning=OPTION
,
--option=clientsigning=OPTION
.
SMB の URL は以下の書式で指定する:
smb://[[[ドメイン名;]ユーザー名[:パスワード@]]サーバー名[/共有名[/パス名[/ファイル名]]]]
smb:// はすべてのワークグループを意味する
smb://名前/ -名前
がワークグループ名の場合は そのワークグループ内のすべてのサーバー、名前
が サーバー名の場合はそのサーバー上のすべての共有名を意味する。
# 'src' ディレクトリー配下を再帰的にダウンロード smbget --recursive smb://rhonwyn/jelmer/src # FreeBSD の ISO ファイルをダウンロード。中断後のリジュームも有効に。 smbget --resume smb://rhonwyn/isos/FreeBSD5.1.iso # すべての ISO ファイルをダウンロード smbget --recursive --resume smb://rhonwyn/isos # データを rhonwyn にバックアップ smbget --recursive -resume smb://rhonwyn/
ある種の原因不明なエラー( URL の書式が誤っていたり、--resursive オプションなしで ディレクトリを取得しようとしたなど)の場合、Permission denied が 返されることがある。