MGet サブコマンド - 複数ファイルのコピー

目的

MGet サブコマンドは、複数のファイルをリモート・ホストからローカル・ホストにコピーし、対応する数のローカル・ファイルを作成するために使用します。

フォーマット

構文図を読む構文図をスキップする
         .--------------.                   
         V              |                   
>>-MGet----foreign_file-+--+------------+----------------------><
                           '-(--REPLACE-'   

パラメーター

foreign_file
リモート・ホストから検索されるファイルの名前を指定します。

MGet サブコマンドでは複数のファイルをコピーすることができるため、MGET サブコマンドの foreign_file パラメーターは 何度も繰り返すことができます。なお、その際は、各 foreign_file の間をブランク・スペースで区切ります。 MGET サブコマンドで foreign_file を指定する際は、パターン・マッチングのために特殊文字を使用することができます。これらの文字は、外部ホスト FTP サーバーによって異なります。

REPLACE
既にローカル・ホストに存在しているデータ・セットがあれば、それを上書きします。データ・セットが既に存在している 場合、REPLACE パラメーターを使用しないと、既存のデータ・セットは上書きされません。このことを通知するメッセージが表示されます。

データ・セットが既に存在している場合、REPLACE パラメーターを指定すると、そのファイルのデータは上書きされますが、再割り振りは行われません。ローカル・データ・セットは、既存の特性を維持します。

制限: UNIXFILETYPE=FIFO を構成した場合は、REPLACE パラメーターは使用できません。

以下は、複数の z/OS® UNIX ファイルに MGet サブコマンドを使用した後に表示される項目と応答のサンプルです。
cd '/u/user121/ftp.example'
 
 >>>CWD '/u/user121/ftp.example'
 250 HFS directory /u/user121/ftp.example is the current working directory
 Command:
 mget file1 file2 file3
 >>>PORT 9,67,112,25,4,90
  200 Port request OK.
 >>>NLST file1
 125 List started OK
 250 List completed successfully.
 >>>PORT 9,67,112,25,4,91
 200 Port request OK.
 >>>NLST file2
 125 List started OK
 250 List completed successfully.
 >>>PORT 9,67,112,25,4,92
 200 Port request OK.
 >>>NLST file3
 125 List started OK
 250 List completed successfully.
 >>>PORT 9,67,112,25,4,93
 200 Port request OK.
 >>>RETR file1
 125 Sending data set /u/user121/ftp.example/file1
 250 Transfer completed successfully.
 3464 Bytes transferred in 1.031 seconds.  Transfer rate 3.36 kbytes/sec.
 >>>PORT 9,67,112,25,4,94
 200 Port request OK.
 >>>RETR file2
 125 Sending data set /u/user121/ftp.example/file2
 250 Transfer completed successfully.
 3993 Bytes transferred in 0.923 seconds.  Transfer rate 4.33 kbytes/sec.
 >>>PORT 9,67,112,25,4,95
 200 Port request OK.
 >>>RETR file3
 125 Sending data set /u/user121/ftp.example/file3
 250 Transfer completed successfully.
 3993 Bytes transferred in 0.791 seconds.  Transfer rate 5.05 kbytes/sec.
 Command:
以下は、ファイル名にワイルドカード文字を使用する MGet サブコマンドを使用した後に表示される項目と応答の サンプルです。
Command:
mget file*
>>>PORT 9,67,113,57,5,123
200 Port request OK.
>>>NLST file*
125 List started OK
250 List completed successfully.
Mget file1 (Yes|No|Quit|Stop prompting)? s
>>>PORT 9,67,113,57,5,124
200 Port request OK.
>>>RETR file1
125 Sending data set /u/user31/file1
250 Transfer completed successfully.
164 bytes transferred in 0.310 seconds.  Transfer rate 0.53 Kbytes/sec.
>>>PORT 9,67,113,57,5,125
200 Port request OK.
>>>RETR file2
125 Sending data set /u/user31/file2
250 Transfer completed successfully.
164 bytes transferred in 0.270 seconds.  Transfer rate 0.61 Kbytes/sec.
>>>PORT 9,67,113,57,5,126
200 Port request OK.
>>>RETR file3
125 Sending data set /u/user31/file3
250 Transfer completed successfully.
164 bytes transferred in 0.280 seconds.  Transfer rate 0.59 Kbytes/sec.
Command:
結果:
  • MGet サブコマンドを使用すると、FTP がデータ・レコードを切り捨て、データが失われる可能性があります。
    • クライアントで新規データ・セットを作成していて、かつ LOCSTat コマンドで示されている LRecl の値が、受信データ・セットの LRecl より小さい場合、FTP は受信データ・セットを切り捨てます。
    • そのデータ・セット名が既にクライアントに存在しており、クライアントにおけるデータ・セットの論理レコード長 (LRecl) が送信データ・セットの LRecl より小さい場合、FTP は、送信データ・セットを切り捨てます。

      このような状態は、MGet サブコマンドに REPLACE オプションを付けて使用したときに生じることがあります。

  • foreign_file に指定した名前がローカル・ホストに受け入れられない場合、そのファイルは転送されません。リモート・ホストからファイルを入手するには、そのホストに定義済み作業ディレクトリーが必要です。また、その作業ディレクトリーのファイルに対する読み取り特権を持っている必要があります。
  • MGet サブコマンドで 1 つ以上の正しくない外部ファイルを指定すると、その正しくない外部ファイルを示す エラー・メッセージが表示されます。正しくない外部ファイルには関係なく、正しい外部ファイルはすべて検索されるため、このサブコマンドを再発行する必要はありません。
  • z/OS UNIX ファイル名には、ある種の特殊文字について特別な処理が必要です。シェルに対して発行するコマンドにおいて、オペレーティング・システムの要件により、エスケープ文字を前に置く必要があるすべての特殊文字の前には、円記号 (¥) エスケープ文字を置かなければなりません。ただし、単一引用符 (’)、二重引用符 (”)、またはブランク ( ) は除きます。
  • MGet サブコマンドを世代別データ・グループ (GDG) に適用することはできません。
  • MGet サブコマンドを PROXy サブコマンドと一緒に使用して、1 次接続のホストから 2 次接続のホストにファイルを転送することができます。詳しくは、PROXy サブコマンド - 2 次制御接続での FTP サブコマンドの実行を参照してください。
  • データ・セットがマイグレーションされる場合は、REPLACE オプションにかかわらずデータ・セットが置換されます。
  • MGet サブコマンドは、リモート・ファイル名からすべてのディレクトリー情報を削除します。これにより、z/OS UNIX ファイル・システムへの転送時に、同じ z/OS UNIX ファイル・システムのディレクトリーにすべてのファイルが保管されることになります。リモート・ホストのディレクトリー構造は 保存されません。
  • SITE サブコマンドに LISTSUBdir オプションが指定されず、サーバーの FTP.DATA ファイルに LISTSUBDIR ステートメントが指定されない場合、デフォルトは SITE サブコマンドに LISTSUBdir オプションが指定されているのと同等になります。
  • z/OS FTP サーバーで SITE サブコマンドに NOLISTSUBdir オプションが指定されているか、サーバーの FTP.DATA ファイルに LISTSUBDIR FALSE が指定されている場合、mget * コマンドは現行ディレクトリー内のファイルのみを取得します。
  • LISTSUBdir オプションは z/OS UNIX ファイルの操作にのみ適用され、MVS™ データ・セットの操作には影響しません。
  • UNIXFILETYPE=FIFO が構成され、ローカル・ディレクトリーが z/OS UNIX ディレクトリーである場合には、以下が適用されます。
    • 新規ファイルが名前付きパイプとして作成されます。
    • z/OS UNIX の既存の通常ファイルへの転送は失敗します。
    • 名前付きパイプが新規、既存のいずれであっても、z/OS クライアント・ホスト上の別のプロセスが読み取りのために名前付きパイプを開くまで、FTP は名前付きパイプに書き込みを行うことができません。z/OS FTP クライアントは、別のプロセスが名前付きパイプを開くのを FIFOOPENTIME 値で指定されている秒数を最長として待機します。
    • FTP は、名前付きパイプへの書き込みが完了するのを、書き込みごとに FIFOIOTIME 値で指定されている秒数を最長として待機します。名前付きパイプから名前付きパイプ・リーダーがデータを読み取るよりもはるかに高速にクライアントが名前付きパイプに書き込みを行うのでない限り、クライアントは書き込み時にブロックを行いません。FIFOIOTIME 値で指定されている秒数の間、クライアントが名前付きパイプにデータをまったく書き込まなかった場合、ファイル転送は失敗します。
    • 既存の名前付きパイプに転送されるデータは、名前付きパイプ内にある内容の後に追加されます。
ガイドライン: ファイルを z/OS UNIX ディレクトリーに転送する際には、構成されている UMASK の値によって新規ファイル許可が決定されます。UMASK の値を構成するには、FTP.DATA ファイルに UMASK ステートメントをコーディングするか、LOCSIte UMASK サブコマンドを発行します。
関連トピック: