構文
mftfsend [ -f clientfile [ -d [ -u ] | -m [ -u ] | -p ] ] serverfile
mftfsend.exe [ -f clientfile [ -d [ -u ] | -m [ -u ] | -p ] ] serverfile
説明
クライアントシステム上の -f に続く clientfile で指定されたファイル、あるいは、標準入力からのデータをサーバに送信し、サーバシステム上の serverfile で指定されたファイル/データセットにデータを格納します。
サーバシステムが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バイトまでのファイル名を絶対パスで指定します。 |
このオプションが省略された場合、標準入力からのデータを送信元データとします。
また、このオプションが複数指定された場合、最後に指定されたオプションが有効になります。
差分ファイル転送機能を使用する場合の転送オプションを指定します。
差分ファイル転送を行う場合に指定します。
送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致しない場合に、データの転送を行います。
送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致した場合には、データの転送は行いません。
また、データの転送に関係なく、送信先ファイルのファイル情報および、ディレクトリ情報を送信元ファイルのファイル情報および、ディレクトリ情報に更新します。
ただし、-u オプションが指定された場合には、データの転送が行われない場合(送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致した場合)に限り、送信先ファイルのファイル情報および、ディレクトリ情報の変更は行われません。
なお、データの転送が行われない場合には、復帰コード:1 で終了します。
更新ファイル転送を行う場合に指定します。
送信元ファイルの最終更新日時が送信先ファイルの最終更新日時より新しい場合に、データの転送を行います。
送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致した場合、もしくは、送信元ファイルの最終更新日時が送信先ファイルの最終更新日時より古い場合には、データの転送は行いません。
また、データの転送に関係なく、送信先ファイルのファイル情報および、ディレクトリ情報を送信元ファイルのファイル情報および、ディレクトリ情報に更新します。
ただし、-u オプションが指定された場合には、データの転送が行われない場合(送信元ファイルの最終更新日時と送信先ファイルの最終更新日時が一致した場合、もしくは、送信元ファイルの最終更新日時が送信先ファイルの最終更新日時より新しい場合)に限り、送信先ファイルのファイル情報および、ディレクトリ情報の変更は行われません。
なお、データの転送が行われない場合には、復帰コード:1 で終了します。
ファイル情報/ディレクトリ情報転送を行う場合に指定します。
送信元ファイルの最終更新日時と送信先ファイルの最終更新日時の値に関係なく、データの転送を行います。
また、同時に、送信先ファイルのファイル情報および、ディレクトリ情報を送信元ファイルのファイル情報および、ディレクトリ情報に更新します。
なお、差分ファイル転送機能の説明については、差分ファイル転送機能を参照してください。
送信先ファイル名/データセット名を指定します。
複数のファイル名/データセット名を指定することはできません。
送信先サーバシステム上に serverfile が存在しない場合、新しくファイルを作成します。
ただし、送信先サーバシステムがUNIX/IAサーバの場合には、ディレクトリも作成します。(UNIXサーバ側のセキュリティおよびパーミッションについては、ユーザ認証の新規作成ファイルのパーミッションの設定を参照)
また、serverfile が存在する場合は上書きします。
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 | クライアントシステム側の区切り文字コード | |
MFTF_VOLUME | ボリューム通し番号 | |
MFTF_RECORDFMT | レコード形式 | |
MFTF_RECORDLEN | レコード長 | |
MFTF_BLOCKSIZE | ブロック長 | |
MFTF_INITSPACE | スペース初期量(ブロック数) | |
MFTF_GAINEDSPACE | スペース増分量(ブロック数) | |
MFTF_RLSESPACE | 未使用領域の解放 |
各環境変数について以下に詳しく説明します。
送信先サーバシステムでのユーザ名を指定します。
指定できるユーザ名はASCIIコードで127バイト以内の文字列です。
ここに指定するユーザ名は、送信先サーバシステムによって以下のように指定します。
サーバシステム | 規則 |
---|---|
UNIX | サーバシステムに登録されているユーザ名を指定します。 |
IA | "WINDOWS"(両端の""は不要)と指定します。 |
グローバルサーバ | サーバシステム上でRACF運用を行っている場合、この環境変数が有効になります。その場合にはRACFに登録されているユーザ名を指定します。英小文字は指定できません。 |
送信先サーバシステムでのユーザ名に対するパスワードを指定します。
指定できるパスワードはASCIIコードで127バイト以内の文字列です。
この環境変数は送信先サーバシステムがグローバルサーバであり、かつ、RACF運用を行っている場合にだけ有効となります。サーバシステムのRACFに登録されているユーザ名に対するパスワードを指定します。英小文字は指定できません。
mftfsendコマンドで使用するデータ転送用ボリュームのキャラクタデバイス名を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サーバの場合に、この環境変数が有効となります。
指定できる文字コードは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サーバの場合だけ、この環境変数が有効となります。
このフィルターコマンドの指定は、フィルターコマンド自身の作りとあっていないとデータの転送は誤動作します。フィルターコマンドの作りについては、フィルターコマンドの呼出しを参照してください。
グローバルサーバ上の serverfile を格納するDASDのボリューム通し番号を指定します。
指定できるボリューム通し番号はASCIIコードで6バイトまでの文字列です。英小文字は指定できません。
また、serverfile を格納するボリュームを最大8個まで指定できます。
グローバルサーバ上の serverfile に格納するデータのレコード形式を以下のどれかの文字列で指定します。
文字列 | 意味 |
---|---|
FIXED_NONBLOCK | 固定長非ブロック化レコード形式で格納します。 |
FIXED_BLOCK | 固定長ブロック化レコード形式で格納します。 |
VARIABLE_NONBLOCK | 可変長非ブロック化レコード形式で格納します。 |
VARIABLE_BLOCK | 可変長ブロック化レコード形式で格納します。 |
送信先サーバシステム上に serverfile が存在するかどうかによって、XLデータムーバは以下の処理を行います。
serverfileの有無 | MFTF_RECORDFMTの指定 | XLデータムーバの処理 |
---|---|---|
serverfile が存在しない | 省略 | エラーとなります。 |
レコード形式を指定 | 指定されたレコード形式でデータを格納します。 | |
serverfile が存在する | 省略 | 既存のファイルのレコード形式でデータを格納します。 |
レコード形式を指定 | 指定されたレコード形式でデータを格納します。 |
グローバルサーバ上の serverfile のレコード長を指定します。
指定できるレコード長の範囲はMFTF_RECORDFMTに指定した値によって異なります。
MFTF_RECORDFMTの指定 | レコード長の範囲 |
---|---|
FIXED_NONBLOCK、FIXED_BLOCK | 1~32760バイト |
VARIABLE_NONBLOCK、VARIABLE_BLOCK | 5~32756バイト |
送信先サーバシステム上に serverfile が存在するかどうかによって、XLデータムーバは以下の処理を行います。
serverfileの有無 | MFTF_RECORDLENの指定 | XLデータムーバの処理 |
---|---|---|
serverfile が存在しない | 省略 | エラーとなります。 |
レコード長を指定 | 指定されたレコード長でデータを格納します。 | |
serverfile が存在する | 省略 | 既存のファイルのレコード長でデータを格納します。 |
レコード長を指定 | 指定されたレコード長でデータを格納します。 |
MFTF_RECORDLEN環境変数は、以下の形式でレコード長を指定してください。
Record Lengthはレコード長を表す数値です。
レコード長を16進数で指定する場合 | 最初の文字に'0'を、2番目の文字に'x'または'X'を指定してから、レコード長を指定する。 |
レコード長を8進数で指定する場合 | 最初の文字に'0'を指定してから、レコード長を指定する。 |
レコード長を10進数で指定する場合 | 最初からレコード長を指定する。 |
グローバルサーバ上の serverfile のブロック長を指定します。
指定できるブロック長の範囲は1~32760バイトです。
送信先サーバシステム上に serverfile が存在するかどうかによって、XLデータムーバは以下の処理を行います。
serverfileの有無 | MFTF_BLOCKSIZEの指定 | XLデータムーバの処理 |
---|---|---|
serverfile が存在しない | 省略 | エラーとなります。 |
ブロック長を指定 | 指定されたブロック長でデータを格納します。 | |
serverfile が存在する | 省略 | 既存のファイルのブロック長でデータを格納します。 |
ブロック長を指定 | 指定されたブロック長でデータを格納します。 |
また、指定するブロック長は、以下の条件を満足している必要があります。なお、ブロック化できる場合は、直接アクセス記憶装置の入出力性能やスペース効率から、23400バイトに近いブロック長を推奨します。
固定長非ブロック化レコード形式 | ブロック長には、レコード長を指定してください。 |
固定長ブロック化レコード形式 | ブロック長には、レコード長の整数倍の値を指定してください。 |
可変長非ブロック化レコード形式 | ブロック長には、レコード長+4より大きい値を指定してください。 |
可変長ブロック化レコード形式 | ブロック長には、レコード長+4より大きい値を指定してください。 |
MFTF_BLOCKSIZE環境変数は以下の形式でブロック長を指定してください。
Block Sizeはブロック長を表す数値です。
ブロック長を16進数で指定する場合 | 最初の文字に'0'を、2番目の文字に'x'または'X'を指定してから、ブロック長を指定する。 |
ブロック長を8進数で指定する場合 | 最初の文字に'0'を指定してから、ブロック長を指定する。 |
ブロック長を10進数で指定する場合 | 最初からブロック長を指定する。 |
グローバルサーバ上の serverfile にデータを格納する際に割り当てるスペース初期量(ブロック数)を指定します。
指定できるスペース初期量の範囲は以下のとおりです。
サーバシステム | スペース初期量の範囲 |
---|---|
MSP | 1 ~ 16777215 |
XSP | 1 ~ 16777215 |
OS/390 | 1 ~ 16777215 |
送信先サーバシステム上に serverfile が存在するかどうかによって、XLデータムーバは以下の処理を行います。
serverfile の有無 | MFTF_INITSPACEの指定 | XLデータムーバの処理 |
---|---|---|
serverfile が存在しない | 省略 | エラーとなります。 |
スペース初期量を指定 | 指定されたスペース初期量でスペースを割り当てます。 | |
serverfile が存在する | 省略 | 既存のファイルのスペース初期量でスペースを割り当てます。 |
スペース初期量を指定 |
MFTF_INITSPACE環境変数は以下の形式でスペース初期量を指定してください。
Initial Spaceはスペース初期量を表す数値です。
スペース初期量を16進数で指定する場合 | 最初の文字に'0'を、2番目の文字に'x'または'X'を指定してから、スペース初期量を指定する。 |
スペース初期量を8進数で指定する場合 | 最初の文字に'0'を指定してから、スペース初期量を指定する。 |
スペース初期量を10進数で指定する場合 | 最初からスペース初期量を指定する。 |
グローバルサーバ上の serverfile に割り当てるスペース増分量(ブロック数)を指定します。
指定できるスペース増分量の範囲は以下のとおりです。
サーバシステム | スペース増分量の範囲 |
---|---|
MSP | 1 ~ 16777215 |
XSP | 1 ~ 16777215 |
OS/390 | 1 ~ 16777215 |
送信先サーバシステム上に serverfile が存在するかどうかによって、XLデータムーバは以下の処理を行います。
serverfileの有無 | MFTF_GAINEDSPACEの指定 | XLデータムーバの処理 |
---|---|---|
serverfile が存在しない | 省略 | スペースの増分を行いません。 |
スペース増分量を指定 | 指定されたスペース増分量でスペースを追加します。 | |
serverfile が存在する | 省略 | 既存のファイルのスペース増分量でスペースを追加します。 |
スペース増分量を指定 |
MFTF_GAINEDSPACE環境変数は以下の形式でスペース増分量を指定してください。
Gained Spaceはスペース増分量を表す数値です。
スペース増分量を16進数で指定する場合 | 最初の文字に'0'を、2番目の文字に'x'または'X'を指定してから、スペース増分量を指定する。 |
スペース増分量を8進数で指定する場合 | 最初の文字に'0'を指定してから、スペース増分量を指定する。 |
スペース増分量を10進数で指定する場合 | 最初からスペース増分量を指定する。 |
グローバルサーバ上の serverfile を閉じる際に未使用領域を解放するかどうかを以下のどちらかの文字列で指定します。
文字列 | 意味 |
---|---|
SPACE_NOTRELEASE | 未使用領域を解放しません。 |
SPACE_RELEASE | 未使用領域を解放します。 |
この環境変数が省略された場合、XLデータムーバは未使用領域を解放しません。
なお、サーバシステムがMSPまたはOS/390で、SPACE_RELEASEを指定した状態で多重度2以上のデータ転送を行った場合、サーバシステム(MSPまたはOS/390)が未使用領域を解放しない場合があります。転送元ファイルのデータサイズおよびMFTF_BLOCKSIZEで示す格納先ファイル/データセットのブロック長を熟慮した上、MFTF_INITSPACE/MFTF_GAINEDSPACEで示すスペース初期量/スペース増分量を適切に設定してください。
復帰値
復帰値は、以下の値を返します。
データ転送の結果内容 | 復帰値 |
---|---|
データ転送が正常終了した。 | 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サーバで転送コマンドを起動した場合、使用しているシェルによって、復帰値の見え方が異なる場合があります。