ncftpget(1) ncftpget(1) 名前 ncftpget - スクリプト用のインターネットファイル転送プログラム 書式 ncftpget [オプション] remote-host local-directory remote- files... ncftpget -f login.cfg [オプション] local-directory remote- files... ncftpget [オプション] ftp://url.style.host/path/name ncftpget -c [オプション] remote-host remote-file > stdout ncftpget -c [オプション] ftp://url.style.host/path/name > stdout オプション コマンドライン・フラグ: -u XX ユーザ名として anonymous の代わりに XX を使う。 -p XX ユーザ名に対するパスワードとして XX を使う。 -P XX ポート番号として FTP サーバのデフォルトポート(21) の代わりに XX を使う。 -j XX ユーザ名とパスワードの補助として XX アカウントを使う(古い)。 -d XX デバッグログとしてファイル XX を使う。 -a 転送時のタイプとしてバイナリの代わりに ASCII を使う。 -t XX XX 秒後にタイムアウトする。 -v/-V 進行状況表示を行う(行わない)。デフォルトでは、出力 ストリームが TTY の場合は進行状況表示を行う。 -f XX ホスト、ユーザ名およびパスワード情報としてファイル XX を読む。 -c ローカルファイルに書き出さずに、出力を標準出力に送る。 -A ローカルファイルを上書きする代わりに追加書きする。 -z/-Z 転送の再開を試みる(しない)。デフォルトでは再開を試みる(-z)。 -E 通常 (PORT) のデータコネクションを使う。 -F パッシブ (PASV) データコネクションを使う。デフォルトでは パッシブ(受動)を使うが、パッシブコネクションに失敗したり タイムアウトした場合は通常コネクションに切り替わる。 -DD ダウンロードが正常終了したらリモートファイルを削除する。 -R 再起モード。ディレクトリツリー全体をコピーする。 -T ディレクトリ全体のダウンロードを行う際、その場限りで (on-the-fly) 自動的に行われる TAR モードを使用しない。 ncftpget では、使用可能であればいつでも TAR を使うように なっているが、これはシンボリックリンクやファイルのパーミ ッションを保持してくれる。TAR モードではさらに、多数の小 さなファイルがあるディレクトリをより高速に転送することが できるが、その際に小さな1つ1つのファイル毎に FTP のデ ータコネクションを消費せず、1つのデータコネクションだけ で処理を完結できる。 TAR を使っうと、前回途中までダウンロードが終わっている場 合でも、ディレクトリ全体を強制的にダウンロードすることに なってしまう。そのような場合にこのオプションを使うと、デ ィレクトリのダウンロードを途中から再開できる。 -r XX リモート FTP サーバに接続できるまで最大 XX 回リダイヤルする。 -b (バッチジョブが起動され、そこから ncftpbatch が起動される ことにより)バックグラウンドで動作する。 -bb -b オプションによく似ているが、こちらはバッチジョブを起動 するだけである。このため、バッチジョブが処理されるように ncftpbatch を起動してやる必要がある。すでに ncftpbatch プ ロセスが動いている場合や、バッチジョブの動作について細か い制御をしたい場合などに有用である。 たとえば、1台のリモートサーバ上で3つのファイルすべてを バックグラウンドで処理したい場合、サーバに対して3つの FTP セッションを同時に開いて3つの ncftpbatch プロセスを 動かすよりは、1つの ncftpbatch プロセスの中で3つのジョ ブをシーケンシャルに動かす方が、より洗練されている。 -B XX TCP/IP ソケットのバッファサイズを XX バイトにしようと 試みる。 -W XX ログイン後、生の FTP コマンドを送る。 -X XX 各々のファイル転送が完了するたびに、生の FTP コマンドを送る。 -Y XX ログアウトする際に、生の FTP コマンドを送る。 ある種のちょっと変わったサーバを使うような先進的なユーザに とって、-W, -X, -Y オプションが役に立つことがある。たとえ ば、メインフレームにアクセスするユーザは、特別な SITE コマ ンドを発行し、ブロックサイズやレコードフォーマッチの情報を 設定する必要があったりする。 これらのオプションを使うと、複数のコマンドを送りたい場合に これを何度でも指定することが可能である。さらに -X オプショ ンについては、クッキー %s により転送されたファイル名を展開 することができる。 説明 ncftpgetの目的は、会話的なシェルから起動しないで、コマンドラインから ファイル転送を行うことにある。これを使えば、FTP の機能を持ったシェル スクリプトその他の無人で動くプロセスを書くことができる。さらに、熟練 したユーザであれば、ncftp のような会話的な FTPプログラムに入ることな く、シェルコマンドからファイルを取り込んだりすることもできる。 このプログラムの特筆すべき機能として、単独の引数として URL を指定する だけで、そのファイルをダウンロードすることができることが挙げられる。 その URL は、ご自分の Web ブラウザやニューズリーダからコピー&ペースト してくればよいのである。以下に例を挙げる: $ cd /tmp $ ncftpget ftp://ftp.ncftp.com/pub/ncftp/ncftp.tar.Z $ zcat ncftp.tar.Z | tar xf - デフォルトでは、このプログラムはリモートホストをオープンし、匿名で ログインしようとするが、ユーザ名とパスワードを指定することも可能で ある。ログインしたいユーザ名を -u で指定し、-p でパスワードを指定 する。シェルからプログラムを起動する場合は、-p オプションを省略す ればパスワード入力のプロンプトを表示する。 -u および -p オプションの使用は勧められない。これは、あなたが作った シェルスクリプトやあなたのプロセス情報を見ることができるすべての人 に対して、あなたのアカウント情報をさらけ出してしまうことになるから である。たとえば、誰かが ps コマンドを使えば、このプログラムの実行 中にあなたのパスワードが見えてしまうかもしれない。 コマンドラインでパスワードを指定する代わりに、アカウント情報を保持す るファイルを -f で指定することが可能である。ただし、そのファイルの読 みだし権限を持っている人にとっては相変わらずあなたのアカウント情報が 見れてしまうので、この方法もあまり勧められない。それでもやはり -f オ プションを使うなら、そのファイルの中身は以下のようにしておく: host sphygmomanometer.ncftp.com user gleason pass mypasswd 他の誰もこのファイルを読めないように、パーミッションを忘れずに変更 しておくこと。 ファイル転送が失敗した原因を調査する際は、-d オプションが非常に役に 立つ。これは指定したファイルに関する FTP のやりとりをすべて記録する ので、どこで失敗したのかが一目でわかる。デバッグ用の出力ファイルと して stdout という特別な名前を指定すると、その出力は画面に対して行 われるようになる。以下に例を挙げる: $ ncftpget -d stdout bowser.nintendo.co.jp . /pub/README 220: FTP server ready. Connected to bowser.nintendo.co.jp. Cmd: USER anonymous 331: Guest login ok, send your complete e-mail address as password. Cmd: PASS xxxxxxxx 230: Welcome! Logged in to bowser.nintendo.co.jp as anonymous. Cmd: TYPE I 200: Type set to I. Cmd: PORT 192,168,9,37,6,76 200: PORT command successful. Cmd: RETR /pub/README 550: /pub/README: File in use. Cmd: QUIT 221: Goodbye. クライアント側のホストとリモート側のホストの間でテキストのフォーマッ ト(訳注:改行コード)が異なる場合には、ASCII モードを使えばよいだろ う。たとえば、ある .TXT ファイルを Windows ベースのマシンから UNIX システムに対して転送する場合、ASCII 転送モードにする -a フラグを指定 すれば、UNIX システム側に生成されるファイルは MS-DOS のテキストフォ ーマットではなく UNIX のフォーマットになる。 -R フラグを使ってディレクトリツリー全体のファイルを取ることもできる。 しかし、これは FTP サーバが UNIX サーバであるか、または UNIX の list 出力をエミュレートしている場合のみ有効である。例: $ ncftpget -R ftp.ncftp.com /tmp /pub/ncftp これは /tmp/ncftp というディレクトリ階層を生成する。 診断 ncftpget は以下の終了ステータスを返す: 0 正常終了 1 リモートホストへの接続失敗 2 リモートホストへの接続失敗 - タイムアウト 3 転送に失敗 4 転送に失敗 - タイムアウト 5 ディレクトリの変更に失敗 6 ディレクトリの変更に失敗 - タイムアウト 7 不正な URL 8 使用法の誤り 9 ログイン設定ファイルの誤り 10 ライブラリの初期化に失敗 11 セッションの初期化に失敗 作者 Mike Gleason, NcFTP Software (mgleason@ncftp.com). 関連事項 ncftpput(1), ncftp(1), ftp(1), rcp(1), tftp(1). LibNcFTP (http://www.ncftp.com/libncftp/). 翻訳者 堀田 倫英