コマンドラインツールを用いて、実行契機の有効/無効を切り替える

作成日 2024/6/5

はじめに

今回は、Hinemosコマンドラインツールについての記事です。
中でも実行契機の有効/無効を切り替えるコマンドラインに焦点を絞ってご紹介します。

 

コマンドラインツールとは

Hinemosコマンドラインツールは、HinemosのWebサービスAPI(アプリケーションプログラミングインタフェース)を利用して、 Hinemosクライアント上のほぼ全ての操作をCUI(キャラクタユーザ インタフェース)上で実現可能となる運用支援ツールです。

 

JobKickStatusについて

コマンドラインツールを用いて様々なことができますが、その一つとして、「実行契機の有効/無効の切り替え」があります。
その際に使用するコマンドラインが、今回ご紹介する[job_setJobKickStatus]になります。

 

実際に実行契機の有効/無効を切り替える

1. ジョブの設定

実行契機を設定する対象のコマンドジョブを、以下の内容で作成します。

 

コマンドジョブ内容

 

[tmp]ディレクトリにある[test.txt]というテキストファイルに日時を追記する内容となっています。

 

2. 実行契機の設定

1.で設定したコマンドジョブに紐づける実行契機を以下の内容で設定します。
今回はスケジュール実行契機を選択しました。

 

実行契機の内容

 

毎時00分から05分ごとに繰り返し実行するよう設定しています。
また、「有効/無効」状態は「無効」で設定しておきます。

 

3. job_setJobKickStatusを実行

では、実際にコマンドラインツールを用いて、「2.実行契機の設定」 で設定したスケジュール実行契機を「有効」に切り替えてみます。

[job_setJobKickStatus]は以下の内容で実行します。

json=$(cat << EOS
{
  "jobKickId" : [ "schedule001" ],
  "validFlag" : true
}
EOS
)
python job_setJobKickStatus.py -H "http://127.0.0.1:8080" -U "hinemos" -w "hinemos" -L "ja" -t "10" -S "$json"

 

4.実行契機が「有効」に切り替わっているか確認

コマンドラインの実行後、以下のようなメッセージが表示されれば成功です。

~(省略)~
http://127.0.0.1:8080, job_setJobKickStatus.py succeeded.

実際に実行契機が「有効」に切り替わっているか確認してみます。

 

実行契機有効後

 

「2.実行契機の設定」で「有効/無効」のチェック欄を「無効」で設定していましたが、「有効」に切り替わっていることが確認できます。

コマンドジョブがスケジュール実行契機で設定した通りに動いているかを確認してみましょう。

 

ジョブ結果確認

 

11時40分から5分ごとにtest.txtに日時が追記されていることが確認できます。
※コマンドラインによる実行契機の有効化を行ったのが2024年1月26日11時36分ごろ

 

job_setJobKickStatusの使用例

今回ご紹介した[job_setJobKickStatus]をコマンドジョブの起動コマンドに設定し、以下のような運用を行うことも可能です。

 

・コマンドジョブ[1]で正常性チェック

・問題なければジョブ[2]を実行

・コマンドジョブ[2]は18時になるまで毎時0分から5分毎に繰り返し実行

・18時以降は非稼働

 

構成例は以下のようになります。

 

ジョブフロー図

 

▽コマンドジョブ[1]の内容
・実行内容は適宜設定

▽コマンドジョブ[1.5]の内容
・待ち条件をコマンドジョブ[1]の終了状態が「正常」に設定
・スケジュール実行契機[1](※1)を「有効」にするよう設定した[job_setJobKickStatus]を起動コマンドに設定(※2)

▽コマンドジョブ[2]の内容
・実行内容は適宜設定
・スケジュール実行契機[1]を設定

▽コマンドジョブ[3]の内容
・スケジュール実行契機[1]を「無効」にするよう設定した[job_setJobKickStatus]を起動コマンドに設定(※3)
・スケジュール実行契機[2](※4)を設定

 

※1 スケジュール実行契機[1]の内容:毎時00分から05分ごとに繰り返し実行

※2 当研究日誌「3.job_setJobKickStatusを実行」で使用したコマンドを参考に作成した起動コマンド例

json=$(cat << EOS
{
"jobKickId" : [ "schedule001" ],
"validFlag" : true
}
EOS
) && python job_setJobKickStatus.py -H "http://127.0.0.1:8080" -U "hinemos" -w "hinemos" -L "ja" -t "10" -S "$json"

 

※3 上記コマンドのリクエストボディにおける[true]を[false]に変更したもの

※4 スケジュール実行契機[2]の内容:毎日17時59分に実行

 

おわりに

この記事では、コマンドラインツールで実行契機の有効/無効を切り替える方法についてご紹介しました。
運用管理のご参考になれば幸いです。