ファイル転送の前後に実行したいジョブを「転送設定」ごとに登録しておくことができます。
(1) 配信前ジョブ
ファイル転送の直前にエージェント側の環境で実行するジョブを「配信前ジョブ」と呼びます。
図2.3 配信前ジョブの実行
1. ファイルを転送する前に、エージェント側の環境でジョブが実行されます。
2. ファイルを転送します。
(2) 配信後ジョブ
ファイル転送後にエージェント側の環境で実行するジョブを「配信後ジョブ」と呼びます。次の2種類があります。
ファイル転送に成功したときに実行するジョブです。
ファイル転送に失敗したときに実行するジョブです。
図2.4 配信後ジョブの実行
1. Agentがファイル転送の完了コードを受け取ります。
2. ファイル転送の完了コードが0であれば正常時ジョブが実行されます。0以外であれば異常時ジョブが実行されます。
ファイル転送後にマネージャ側の環境で実行するジョブを「集信後ジョブ」と呼びます。次の2種類があります。
ファイル転送に成功したときに実行するジョブです。
ファイル転送に失敗したときに実行するジョブです
図2.5 集信後ジョブの実行
1. HULFTがAgentからファイルを集信します。
2. ファイル転送の完了コードが0であれば正常時ジョブが実行されます。0以外であれば異常時ジョブが実行されます。
ジョブによって使用できる環境変数が異なります。
配信前ジョブと配信後ジョブでは、次の表に示す環境変数を使用できます。
変数名 | 変換規則 |
---|---|
FILEID |
転送ファイルのファイルIDに変換されます。 |
FILENM |
転送ファイルのファイル名に変換されます。 |
集信後ジョブでは、次の表に示す環境変数を使用できます。
変数名 | 変換規則 |
---|---|
HOST | 集信ホスト名に変換されます。 |
FILEID | 転送ファイルのファイルIDに変換されます。 |
COUNT | 集信件数に変換されます。 |
FILENM | 集信ファイル名に変換されます。 |
STATUS |
集信完了コードに変換されます。※ |
DETAIL |
集信詳細コードに変換されます。※ |
SDATE | YYMMDDの形式で、集信開始日に変換されます |
EDATE | YYMMDDの形式で、集信終了日に変換されます。 |
STIME | HHMMSSの形式で、集信開始時刻に変換されます。 |
ETIME | HHMMSSの形式で、集信終了時刻に変換されます。 |
SDATE2 | YYYYMMDDの形式で、集信開始日に変換されます。 |
EDATE2 | YYYYMMDDの形式で、集信終了日に変換されます。 |
※ |
: |
コードについては、HULFTのマニュアル「エラーコード・メッセージ」を参照してください。 |
(5) ジョブの例
配信後ジョブと集信後ジョブの例です。
配信後ジョブで環境変数を使用する例です。
環境変数 | 変換内容 | 変換値 |
---|---|---|
%FILENM% | HULFTへ転送したファイルのファイル名です。 | C:\temp\monitored\test.txt |
配信後ジョブの中で環境変数を使用してファイルを削除する記述例です。
@echo off echo The following file was transferred to HULFT and it is deleted by Agent: %FILENM% >> "C:\HULFT Family\hulftiot\user.log" del %FILENM% :end |
上記の記述例に、表で示した変換例を当てはめて実行すると、次のように出力されて転送ファイルが削除されます。
The following file was transferred to HULFT and it is deleted by Agent: C:\temp\monitored\test.txt |
配信後ジョブで環境変数を使用する例です。
環境変数 | 変換内容 | 変換値 |
---|---|---|
$FILENM | HULFTへ転送したファイルのファイル名です。 | /tmp/monitored/test.txt |
配信後ジョブの中で環境変数を使用してファイルを削除する記述例です。
#! /bin/sh echo The following file was transferred to HULFT and it is deleted by Agent: $FILENM >> user.log rm $FILENM |
上記の記述例に、表で示した変換例を当てはめて実行すると、次のように出力されて転送ファイルが削除されます。
The following file was transferred to HULFT and it is deleted by Agent: /tmp/monitored/test.txt |
集信後ジョブで環境変数を使用する例です。
環境変数 | 変換内容 | 変換値 |
---|---|---|
%$HOST% | 集信ホスト名です。 | HOST0001 |
%$FILEID% | 転送ファイルのファイルIDです。 | FILEID01 |
%$SDATE2% | 集信開始日です。 | 20180815 |
%$STIME% | 集信開始時刻です。 | 155400 |
%$EDATE2% | 集信終了日です。 | 20180815 |
%$ETIME% | 集信終了時刻です。 | 160232 |
%$COUNT% | 集信レコード件数です。 | 12000 |
%$STATUS% | 集信完了コードです。 | 0 |
%$FILENM% | 集信ファイル名です。 | C:\temp\received\result.txt |
集信後ジョブの中で環境変数を使用して集信したファイルの情報を標準出力に出力する記述例です。
@echo off echo %$HOST% %$FILEID% %$SDATE2% %$STIME% %$EDATE2% %$ETIME% echo count=%$COUNT% status=%$STATUS% if not %$STATUS% == 0 goto end echo %$FILENM% :end |
上記の記述例に、表で示した変換例を当てはめて実行すると、集信結果の情報が次のように出力されます。
HOST0001 FILEID01 20180815 155400 20180815 160232 count=12000 status=0 C:\temp\received\result.txt |
集信後ジョブで環境変数を使用する例です。
環境変数 | 変換内容 | 変換値 |
---|---|---|
$HOST | 集信ホスト名です。 | HOST0001 |
$FILEID | 転送ファイルのファイルIDです。 | FILEID01 |
$SDATE2 | 集信開始日です。 | 20180815 |
$STIME | 集信開始時刻です。 | 155400 |
$EDATE2 | 集信終了日です。 | 20180815 |
$ETIME | 集信終了時刻です。 | 160232 |
$COUNT | 集信レコード件数です。 | 12000 |
$STATUS | 集信完了コードです。 | 0 |
$DETAIL | 集信詳細コードです。 | 0 |
$FILENM | 集信ファイル名です。 | /tmp/received/result.txt |
集信後ジョブの中で環境変数を使用して集信したファイルの情報をファイルに書き込む記述例です。
#! /bin/sh echo $HOST $FILEID $SDATE2 $SITME $EDATE2 $ETIME > user.log echo count=$COUNT status=$STATUS detail=$DETAIL >> user.log if [ $STATUS -eq 0 ] then echo $FILENM >> user.log cp $FILENM $FILENM.bak fi |
上記の記述例に、表で示した変換例を当てはめて実行すると、集信結果の情報が次のように出力されます。
HOST0001 FILEID01 2018015 1555400 20180815 160232 count=12000 status=0 detail=0 /tmp/received/result.txt |
転送設定画面の[ジョブ]タブで、配信前ジョブおよび配信後ジョブ(正常時ジョブ、異常時ジョブ)の実行モードを指定します。
ジョブの条件 | ジョブ実行モード | ||
---|---|---|---|
ステップ単位 | スクリプト単位 | ||
実行対象のジョブ |
・実行したいコマンドを記述 ・コマンドは複数記述可能 |
・実行したいスクリプトファイルを記述 ・対応するスクリプト形式はOSや環境に依存 |
|
Windows版の場合 | コマンドプロンプト上で実行可能なコマンド | コマンドプロンプトで実行できるバッチファイル | |
Linux版の場合 | Agent実行ユーザーに割り当てられたログインシェル上で実行可能なコマンド | Bourneシェルで解析できるコマンドを記載したシェルスクリプトファイル |
|
判定 |
・コマンドの戻り値が0の場合:正常終了と判断します。 ・コマンドの戻り値が0以外の場合:異常終了と判断します。実行を中断し、以降のコマンドは実行しません。 |
・スクリプトファイルの終了コードが0の場合:正常終了と判断します。 ・スクリプトファイルの終了コードが0以外の場合:異常終了と判断します。スクリプトの実行を中断します。 |
|
: |
シェルスクリプトで実行できるコマンドについては、インストール先OSの/bin/shの仕様を確認してください。 |