配信前ジョブ、配信後ジョブ、および集信後ジョブ

ファイル転送の前後に実行したいジョブを「転送設定」ごとに登録しておくことができます。

(1) 配信前ジョブ

ファイル転送の直前にエージェント側の環境で実行するジョブを「配信前ジョブ」と呼びます。

図2.3 配信前ジョブの実行

1. ファイルを転送する前に、エージェント側の環境でジョブが実行されます。

2. ファイルを転送します。

(2) 配信後ジョブ

ファイル転送後にエージェント側の環境で実行するジョブを「配信後ジョブ」と呼びます。次の2種類があります。

正常時ジョブ

ファイル転送に成功したときに実行するジョブです。

異常時ジョブ

ファイル転送に失敗したときに実行するジョブです。

図2.4 配信後ジョブの実行

1. Agentがファイル転送の完了コードを受け取ります。

2. ファイル転送の完了コードが0であれば正常時ジョブが実行されます。0以外であれば異常時ジョブが実行されます。

(3) 集信後ジョブ

ファイル転送後にマネージャ側の環境で実行するジョブを「集信後ジョブ」と呼びます。次の2種類があります。

正常時ジョブ

ファイル転送に成功したときに実行するジョブです。

異常時ジョブ

ファイル転送に失敗したときに実行するジョブです

図2.5 集信後ジョブの実行

1. HULFTがAgentからファイルを集信します。

2. ファイル転送の完了コードが0であれば正常時ジョブが実行されます。0以外であれば異常時ジョブが実行されます。

(4) 環境変数の使用

ジョブによって使用できる環境変数が異なります。

使用できる環境変数

配信前ジョブと配信後ジョブでは、次の表に示す環境変数を使用できます。

表2.2 配信前ジョブと配信後ジョブで使用できる環境変数

変数名 変換規則
FILEID

転送ファイルのファイルIDに変換されます。

FILENM

転送ファイルのファイル名に変換されます。

集信後ジョブでは、次の表に示す環境変数を使用できます。

表2.3 集信後ジョブで使用できる環境変数

変数名 変換規則
HOST 集信ホスト名に変換されます。
FILEID 転送ファイルのファイルIDに変換されます。
COUNT 集信件数に変換されます。
FILENM 集信ファイル名に変換されます。
STATUS

集信完了コードに変換されます。

DETAIL

集信詳細コードに変換されます。

SDATE YYMMDDの形式で、集信開始日に変換されます
EDATE YYMMDDの形式で、集信終了日に変換されます。
STIME HHMMSSの形式で、集信開始時刻に変換されます。
ETIME HHMMSSの形式で、集信終了時刻に変換されます。
SDATE2 YYYYMMDDの形式で、集信開始日に変換されます。
EDATE2 YYYYMMDDの形式で、集信終了日に変換されます。

:

コードについては、HULFTのマニュアル「エラーコード・メッセージ」を参照してください。

(5) ジョブの例

配信後ジョブと集信後ジョブの例です。

配信後ジョブの例(Windows)

配信後ジョブで環境変数を使用する例です。

表2.4 環境変数の変換例(配信後ジョブ)

環境変数 変換内容 変換値
%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

配信後ジョブの例(Linux)

配信後ジョブで環境変数を使用する例です。

表2.5 環境変数の変換例(配信後ジョブ)

環境変数 変換内容 変換値
$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

集信後ジョブの例(Windows)

集信後ジョブで環境変数を使用する例です。

表2.6 環境変数の変換例(集信後ジョブ)

環境変数 変換内容 変換値
%$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

集信後ジョブの例(Linux)

集信後ジョブで環境変数を使用する例です。

表2.7 環境変数の変換例(集信後ジョブ)

環境変数 変換内容 変換値
$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

(6) ジョブ実行モードの指定

転送設定画面の[ジョブ]タブで、配信前ジョブおよび配信後ジョブ(正常時ジョブ、異常時ジョブ)の実行モードを指定します。ジョブ実行モードは、実行するジョブの形式に合わせて「ステップ単位」と「スクリプト単位」から選択します。

表2.8 ジョブ実行モードと実行対象になるジョブ

ジョブの条件 ジョブ実行モード
ステップ単位 スクリプト単位
実行対象のジョブ

・実行したいコマンドを記述

・コマンドは複数記述可能

・実行したいスクリプトファイルを記述

・対応するスクリプト形式はOSや環境に依存

  Windows版の場合 コマンドプロンプト上で実行可能なコマンド コマンドプロンプトで実行できるバッチファイル
Linux版の場合 Agent実行ユーザーに割り当てられたログインシェル上で実行可能なコマンド Bourneシェルで解析できるコマンドを記載したシェルスクリプトファイル
判定

・コマンドの戻り値が0の場合:正常終了と判断します。

・コマンドの戻り値が0以外の場合:異常終了と判断します。実行を中断し、以降のコマンドは実行しません。

・スクリプトファイルの終了コードが0の場合:正常終了と判断します。

・スクリプトファイルの終了コードが0以外の場合:異常終了と判断します。スクリプトの実行を中断します。

:

シェルスクリプトで実行できるコマンドについては、インストール先OSの/bin/shの仕様を確認してください。