[CentOS6][SOS JobScheduler] ジョブのパラメータを外部ファイルに定義する


Create: 2014/10/08
LastUpdate: 2014/10/08
[ メニューに戻る ]

ここでは、ジョブのパラメータを、外部ファイルで定義する方法を紹介します。
手順については、JobSchedulerFAQ を参考にしました。
パラメータを外部ファイルに定義することで、以下の利点があります。
  • パラメータを集中管理し、複数のジョブで利用できる。
  • JOCでパラメータを参照できなくなるので、セキュリティを高める効果がある。

外部ファイルのパラメータを使用するジョブは、以下のように定義します。
赤字部分で、外部ファイルの "my_params.xml" を指定しています。
外部ファイルのファイル名は、自由に決められます。
<?xml version="1.0" encoding="ISO-8859-1"?>
<job title="shell job01">
    <params>
       <include live_file="my_params.xml"/>
    </params>
    <script language="shell">
        <![CDATA[
echo "----------------------------------------------------------"
echo "$SCHEDULER_JOB_NAME processed $SCHEDULER_ORDER_ID"
echo "Current Timestamp: `date '+%Y-%m-%d %H:%M:%S'`"
echo "Current Hostname: `uname -n`"
echo "Current Username: `whoami`"
echo "----------------------------------------------------------"
env | sort
exit 0
        ]]>
    </script>
    <run_time />
</job>
 
上記のジョブを実行すると環境変数を表示するので、環境変数を見ればパラメータを確認することができます。
外部ファイルの my_params.xml は、以下のように定義します。
この例では、パラメータを4つ定義しています。
<?xml version="1.0" encoding="iso-8859-1"?>
<params>
  <param name="param1" value="value1"/>
  <param name="param2" value="value2"/>
  <param name="param3" value="value3"/>
  <param name="param4" value="value4"/>
</params>

ジョブ定義の include の指定次第で、外部ファイルの置き場所は自由に設定できますが、今回の外部ファイルの置き場所は、ジョブと同じディレクトリとしています。
ジョブを実行すると、結果は以下のとおり。
赤枠で示した環境変数が、外部ファイルで定義したパラメータです。


上記設定では、外部ファイルの変更は自動的に読み取ってくれました。