構文
mftfrecv [ -t clientfile [ -d [ -u ] | -m [ -u ] | -p ] ] serverfile
mftfrecv.exe [ -t clientfile [ -d [ -u ] | -m [ -u ] | -p ] ] serverfile
説明
サーバシステムから serverfile で指定されたファイル/データセットに格納されているデータを、クライアントシステムに受信し、-t に続く clientfile で指定された受信先ファイルへ格納、あるいは、標準出力に出力します。
サーバシステムがUNIX/IAサーバの場合、サーバシステム上の「利用者登録ファイル」に記述されているユーザ名のどれかと一致するユーザでデータの受信を行ってください。
上記に関する具体的な設定方法等については、データ転送用利用者登録を参照してください。
なお、本コマンドは以下のユーザが使用できます。
IAサーバの場合、Administratorsグループに所属したユーザ。
[L20以前の場合]
UNIXサーバの場合、システム管理者(UIDが0のユーザ、一般的にはroot)。
上記以外のユーザが使用した場合、“「Administrators」グループ所属のユーザではない”との理由でエラーになります。
また、差分ファイル転送機能を使用する場合は、管理者資格が必要なため以下の条件を満たす必要があります。
クライアントシステム側がUNIXサーバの場合、本コマンドを管理者(UserID=0)で実行
サーバシステム側がUNIXサーバの場合、環境変数MFTF_USER(サーバシステム側のユーザ名)に管理者(UserID=0)を指定
オプション
クライアントシステム上の格納先ファイル名を指定します。
clientfileで指定するファイル名は、クライアントシステムによって以下のように指定します。
クライアントシステム | 規則 | |
---|---|---|
UNIX | Solaris OS | ASCIIコードで1023バイトまでのファイル名を絶対パスで指定します。 |
HP-UX | ASCIIコードで1023バイトまでのファイル名を絶対パスで指定します。 | |
AIX | ASCIIコードで1022バイトまでのファイル名を絶対パスで指定します。 | |
Linux | ASCIIコードで1023バイトまでのファイル名を絶対パスで指定します。 | |
IA | ASCIIコードで260バイトまでのファイル名を絶対パスで指定します。 |
クライアントシステム上に clientfile が存在しない場合、新しくこのファイルおよびディレクトリを作成します。
作成したファイルやディレクトリのセキュリティおよびパーミッションは、本コマンドの実行ユーザの権限となります。
また、 clientfile が存在する場合、このファイルにデータを上書きします。
このオプションが省略された場合、標準出力に受信データを出力します。また、このパラメータが複数指定された場合、最後に指定されたパラメータが有効になります。
差分ファイル転送機能を利用する場合の転送オプションを指定します。
差分ファイル転送を行う場合に指定します。
送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致しない場合に、データの転送を行います。
送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致した場合には、データの転送は行いません。
また、データの転送に関係なく、送信先ファイルのファイル情報および、ディレクトリ情報を送信元ファイルのファイル情報および、ディレクトリ情報に更新します。
ただし、-u オプションが指定された場合には、データの転送が行われない場合(送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致した場合)に限り、送信先ファイルのファイル情報および、ディレクトリ情報の変更は行われません。
なお、データの転送が行われない場合には、復帰コード:1 で終了します。
更新ファイル転送を行う場合に指定します。
送信元ファイルの最終更新日時が送信先ファイルの最終更新日時より新しい場合に、データの転送を行います。
送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致した場合、もしくは、送信元ファイルの最終更新日時が送信先ファイルの最終更新日時より古い場合には、データの転送は行いません。
また、データの転送に関係なく、送信先ファイルのファイル情報および、ディレクトリ情報を送信元ファイルのファイル情報および、ディレクトリ情報に更新します。
ただし、-u オプションが指定された場合には、データの転送が行われない場合(送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致した場合、もしくは、送信元ファイルの最終更新日時が送信先ファイルの最終更新日時より新しい場合)に限り、送信先ファイルのファイル情報および、ディレクトリ情報の変更は行われません。
なお、データの転送が行われない場合には、復帰コード:1 で終了します。
ファイル情報/ディレクトリ情報転送を行う場合に指定します。
送信元ファイルの最終更新日時と送信先ファイルの最終更新日時の値に関係なく、データの転送を行います。
また、同時に、送信先ファイルのファイル情報および、ディレクトリ情報を送信元ファイルのファイル情報および、ディレクトリ情報に更新します。
なお、差分ファイル転送機能の説明については、差分ファイル転送機能を参照してください。
サーバシステム上の受信元ファイル名/データセット名を指定します。複数のファイル名/データセット名を指定することはできません。
serverfile で指定するファイル名/データセット名は、サーバシステムによって以下のように指定します。
サーバシステム | 規則・備考 | |
---|---|---|
UNIX | Solaris OS | ASCIIコードで1023バイトまでのファイル名を絶対パスで指定します。 |
HP-UX | ASCIIコードで1023バイトまでのファイル名を絶対パスで指定します。 | |
AIX | ASCIIコードで1022バイトまでのファイル名を絶対パスで指定します。 | |
Linux | ASCIIコードで1023バイトまでのファイル名を絶対パスで指定します。 | |
IA | ASCIIコードで260バイトまでのファイル名を絶対パスで指定します。 | |
MSPまたはOS/390 | ASCIIコードで44バイトまでの順データセット名を指定します。英小文字は指定できません。 | |
XSP | ASCIIコードで26バイトまでの順編成ファイル名を指定できます。英小文字は指定できません。 |
環境変数
このコマンドを使用する場合に、以下の環境変数を指定して受信に関する設定を行うことができます。
環境変数名 | 必須 | 概 要 |
---|---|---|
MFTF_USER | ◎ | サーバシステム側のユーザ名 |
MFTF_DEVICE | ◎ | クライアントシステム側のキャラクタデバイス名(データ転送用ボリューム) |
MFTF_CLLINECODE | クライアントシステム側の区切り文字コード | |
MFTF_SVLINECODE | サーバシステム側の区切り文字コード | |
MFTF_COMMAND | フィルターコマンド |
環境変数名 | 必須 | 概 要 |
---|---|---|
MFTF_USER | サーバシステム側のユーザ名 | |
MFTF_PASSWORD | サーバシステム側のユーザのパスワード | |
MFTF_DEVICE | ◎ | クライアントシステム側のキャラクタデバイス名(データ転送用ボリューム) |
MFTF_CLLINECODE | クライアントシステム側の区切り文字コード |
各環境変数について以下に詳しく説明します。
サーバシステムでのユーザ名を指定します。
指定できるユーザ名はASCIIコードで127バイト以内の文字列です。
ここに指定するユーザ名は、サーバシステムによって以下のように指定します。
サーバシステム | 規則 |
---|---|
UNIX | サーバシステムに登録されているユーザ名を指定します。 |
IA | "WINDOWS"(両端の""は不要)と指定します。 |
グローバルサーバ | サーバシステム上でRACF運用を行っている場合、この環境変数が有効になります。その場合にはRACFに登録されているユーザ名を指定します。英小文字は指定できません。 |
サーバシステムでのユーザ名に対するパスワードを指定します。
指定できるパスワードはASCIIコードで127バイト以内の文字列です。
この環境変数は受信元サーバがグローバルサーバの場合に有効となります。サーバシステムのRACFに登録されているユーザ名に対するパスワードを指定します。英小文字は指定できません。
mftfrecvコマンドで使用するデータ転送用ボリュームのキャラクタデバイス名を64バイト以内で指定します。
この環境変数の値を複数指定することにより、複数のデバイス内より最も転送処理数の少ないデバイスを自動的に選択して転送を実施することができます。
複数のデバイスを指定する場合、各デバイスをUNIXサーバの場合は「 : 」(コロン)、IAサーバの場合は「 ; 」(セミコロン)で区切って指定します。
ここに指定するキャラクタデバイス名は、以下のキャラクタデバイス名を指定します。
データ転送用ボリュームの絶対パス名を指定します。
例
Solaris OSの場合
host-adaptor-id=1 target-id=2 論理ユニット=3の場合
(論理ユニット全体が参照できるパーティションはs2です。)
setenv MFTF_DEVICE /dev/rdsk/c1t2d3s2
HP-UXの場合
host-adaptor-id=1 target-id=2 論理ユニット=3の場合
setenv MFTF_DEVICE /dev/rdsk/c1t2d3
AIXの場合
hdisk3 の場合
setenv MFTF_DEVICE /dev/rhdisk3
Linux(RHEL8以前)の場合
/dev/sda2 のデバイスを rawコマンド で /dev/raw/raw2 にバインドした場合
setenv MFTF_DEVICE /dev/raw/raw2
Linux(RHEL9以降)の場合
/dev/sda2 のデバイスにシンボリックリンクしたXLデータ専用デバイス名(/dev_mftf/dev2)とした場合
Setenv MFTF_DEVICE /dev_mftf/dev2
ディスクユーティリティで選択した物理ディスク番号("Diskxx"のxx部分の数字)を"PHYSICALDRIVE"の後に追加した形で指定します。
その際に、物理ディスク番号の先頭が 0の場合 には 0をとった数字を指定する必要があります。
例
物理ディスク番号が1("Disk01")の場合
set MFTF_DEVICE=PHYSICALDRIVE1
入出力データのレコード(1行)を意識して転送する場合(テキスト転送)、clientfile のレコード(1行)の終端を識別する区切り文字の文字コードを指定します。
この環境変数を指定すると、区切り文字付加機能または区切り文字変換機能を使用した転送となります。
区切り文字変換機能を使用した転送となります。
区切り文字付加機能を使用した転送となります。
この環境変数が指定されていない場合は、受信先データをレコード(1行)を意識しない(バイナリ転送)で格納します。指定できる文字コードはASCIIコードです。
区切り文字は1~4バイトまで指定可能です。2バイト以上の文字コードを指定する場合には、文字コードを1バイトずつ複数指定してください。
複数の文字コードを指定する場合、各文字コードをUNIXサーバの場合は「 : 」(コロン)、IAサーバの場合は「 ; 」(セミコロン)で区切ります。
MFTF_CLLINECODE環境変数は以下の形式で文字コードを指定してください。
character codeは1文字のASCIIコードです。
ASCIIコードを16進数で指定する場合 | 最初の文字に'0'を、2番目の文字に'x'または'X'を指定してから、ASCIIコードを指定する。 |
ASCIIコードを8進数で指定する場合 | 最初の文字に'0'を指定してから、ASCIIコードを指定する。 |
ASCIIコードを10進数で指定する場合 | 最初からASCIIコードを指定する。 |
例
UNIX側で16進数の0dと0aを指定する場合
0x0d:0x0a
入出力データのレコード(1行)を意識して転送する場合(テキスト転送)、serverfile のレコード(1行)の終端を識別する区切り文字の文字コードを指定します。
MFTF_CLLINECODE環境変数が指定された場合は、この環境変数は指定する必要があります。
また、受信元サーバシステムがUNIX/IAサーバでMFTF_CLLINECODE環境変数が指定されている場合に、この環境変数が有効となります。
指定できる文字コードはASCIIコードです。
区切り文字は1~4バイトまで指定可能です。2バイト以上の文字コードを指定する場合には、文字コードを1バイトずつ複数指定してください。
複数の文字コードを指定する場合、各文字コードをUNIXサーバの場合は「 : 」(コロン)、IAサーバの場合は「 ; 」(セミコロン)で区切ります。
MFTF_SVLINECODE環境変数は以下の形式で文字コードを指定してください。
character codeは1文字のASCIIコードです。
ASCIIコードを16進数で指定する場合 | 最初の文字に'0'を、2番目の文字に'x'または'X'を指定してから、ASCIIコードを指定する。 |
ASCIIコードを8進数で指定する場合 | 最初の文字に'0'を指定してから、ASCIIコードを指定する。 |
ASCIIコードを10進数で指定する場合 | 最初からASCIIコードを指定する。 |
例
UNIX側で16進数の0dと0aを指定する場合
0x0d:0x0a
サーバシステム上で実行するフィルターコマンド文字列を指定します。その際に指定するコマンドのファイル名を絶対パスで指定してください。
また、オプション等も指定可能ですが、シェル解析できる形式で入力してください。
フィルターコマンドのファイル名やディレクトリ名に空白がある場合には、必ず「 " 」(ダブルクォート)または「 ' 」(シングルクォート)で囲んで (IAサーバの場合には、「 " 」(ダブルクォート)で囲んでください)、シェル解析できるような形式にしてください。
指定できるファイル名はASCIIコードで2047バイトまでの文字列です。
この環境変数が省略された場合、受信元サーバシステム上でフィルターコマンドを実行しません。また、受信元サーバシステムがUNIX/IAサーバの場合だけ、この環境変数が有効となります。
このフィルターコマンドの指定は、フィルターコマンド自身の作りとあっていないとデータの転送は誤動作します。フィルターコマンドの作りについては、フィルターコマンドの呼出しを参照してください。
復帰値
復帰値は、以下の値を返します。
データ転送の結果内容 | 復帰値 |
---|---|
データ転送が正常終了した。 | 0 |
-d[-u]オプションおよび、-m[-u]オプションを指定したとき、最終更新日時の条件によりデータ転送処理が行われなかった。 | 1 |
-d[-u]オプション、または-pオプション、または-m[-u]オプションを指定したとき、システムエラーにより、データ転送は正常に終了したがファイル情報/ディレクトリ情報の更新ができなかった。 | 2 |
データ転送が異常終了した。 | -1 |
フィルターコマンドでエラー(フィルターコマンドの復帰コードが0以外)が発生した場合、「フィルターコマンド復帰コード変換ファイル」の解析結果によって、以下の値を返し、メッセージを標準エラー出力に出力します。「フィルターコマンド復帰コード変換ファイル」の詳細については、フィルターコマンド復帰コード変換ファイルの作成を参照してください。
フィルターコマンド復帰コード変換ファイルの解析結果 | 復帰値 |
---|---|
フィルターコマンド復帰コード変換ファイルが存在しない | フィルターコマンドの復帰コード |
フィルターコマンド復帰コード変換ファイル内に該当する情報がない | |
フィルターコマンドの復帰コードがNORMALに該当する | 0 |
フィルターコマンドの復帰コードがWARNINGに該当する | フィルターコマンド復帰コード変換ファイル内の「WARNING」に指定した値 |
フィルターコマンドの復帰コードがERRORに該当する | -1 (UNIXサーバの場合 = 255) |
それ以外の場合は-1(UNIXサーバの場合 = 255)を返し、メッセージを標準エラー出力に出力します。
注意
UNIXサーバで転送コマンドを起動した場合、使用しているシェルによって、復帰値の見え方が異なる場合があります。