ジョブ実行履歴をテキストファイルへ出力する

                                                                             
作成日2023/11/28

はじめに

Hinemosではコマンドラインツールやメンテナンススクリプト等を用いて、Hinemosにて実行したジョブの実行履歴を出力することができます。
今回、この記事では、Hinemosのジョブやコマンドラインツールを用いて、 Hinemosにて実行したジョブの実行履歴を、テキストファイル形式で出力したいと思います。

 

1.前提

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

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

 

2.ジョブ実行履歴をテキストファイル形式で出力してみる

環境

Hinemos ver.7.0.1のManager,Agent,Client, コマンドラインツールがインストールされた環境を用います。
構成は以下のように、サーバ1台にManager,Agent,Client, コマンドラインツールをインストールした環境となっています。

 

サーバ1
 - Hinemos ver.7.0.1 マネージャ
 - Hinemos ver.7.0.1 エージェント
 - Hinemos ver.7.0.1 Webクライアント
 - Hinemos ver.7.0.1 コマンドラインツール

 

また、以下のようなフィルター条件を記載したjsonファイルを任意の場所へ配置します。

○フィルター条件

/root/export/filter.json

 

    {
        "filter" : 
        {
            "conditions" : [
                {
                    "endStatus" : "NORMAL",
                    "negative" : true
                }
            ]
        }
    }


 

例では /root/export/filter.json に配置しました。
このjsonファイルをコマンド実行時に指定して、その条件に当てはまるジョブの実行履歴を出力します。
今回は終了ステータスが正常以外の実行履歴を出力してみたいと思います。
フィルター条件等の詳細につきましてはコマンドラインツールのマニュアルをご確認ください。

 

実行コマンドの確認

Hinemos コマンドラインツールでは、job_getJobHistoryList.py というスクリプトを指定することでジョブ履歴の一覧を取得できます。
※Python コマンドはご自身の環境に合わせて読み替えてください。(例:「python3」等)
※コマンドラインツールのインストール時に配置した「hinemos_command_line」というフォルダ内に、job_getJobHistoryList.py等のスクリプトが入っています。
※ジョブ履歴はHinemos マネージャの内部DBから取得するため、マネージャがインストールされた環境にてコマンドを実行します。

 

○コマンド形式

python job_getJobHistoryList.py [-H url] [-U user] [-w password] [-L lang] [-t requestTimeout] [-g getJobHistoryListBody] [-js jsonFile]

 

実際に実行するコマンドは以下のようになります。
今回はjsonファイルを指定して実行するため、-js オプションを用いてフィルター条件が記載されたjsonファイルを指定しています。
ファイルは /root/export/ 配下にJobHistoryListyyyyMMdd_HHmmss.txt という形式で出力されるようにしています。

 

○実行コマンド例

python job_getJobHistoryList.py -H "http://192.168.XXX.XXX:8080" -U "hinemos" -w "hinemos" -L "ja" -js "/root/export/filter.json" > /root/export/JobHistoryList`date "+%Y%m%d_%H%M%S"`.txt

 

実行結果

コマンドを実行すると以下のように、「JobHistoryList20231005_103016.txt」というファイルが出力されていることを確認できました。

 

# python job_getJobHistoryList.py -H "http://192.168.XXX.XXX:8080" -U "hinemos" -w "hinemos" -L "ja" -js "/root/export/filter.json" > /root/export/JobHistoryList`date "+%Y%m%d_%H%M%S"`.txt
# cd /root/export
# ls -1t
JobHistoryList20231005_103016.txt

 

ファイルの中身は以下のようになっています。(一部抜粋)

 

    {
      "list": [
        {
          "status": "END",
          "endStatus": "ABNORMAL",
          "endValue": -1,
          "sessionId": "20231005080000-000",
          "jobId": "job_getJobHistoryList",
          "jobunitId": "test",
          "jobName": "getJobHistoryList",
          "jobType": "JOB",
          "facilityId": "testManager01",
          "scope": "testManager01",
          "ownerRoleId": "ALL_USERS",
          "scheduleDate": "20231005080000067",
          "startDate": "20231005080000136",
          "endDate": "20231005080001228",
          "jobTriggerType": "SCHEDULE",
          "triggerInfo": "getJobHistoryList(test1)"
        },
        {
          "status": "END",
          "endStatus": "WARNING",
          "endValue": 1,
          "sessionId": "20231002160425-000",
          "jobId": "job_getJobHistoryList",
          "jobunitId": "test",
          "jobName": "getJobHistoryList",
          "jobType": "JOB",
          "facilityId": "testManager01",
          "scope": "testManager01",
          "ownerRoleId": "ALL_USERS",
          "scheduleDate": "20231002160425063",
          "startDate": "20231002160425228",
          "endDate": "20231002160437284",
          "jobTriggerType": "MANUAL",
          "triggerInfo": "Hinemos Administrator(hinemos)"
        },
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      "total": 11
    }
    
    http://192.168.XXX.XXX:8080, job_getJobHistoryList.py succeeded.

 

終了ステータスが正常以外のジョブ実行履歴が出力されていますね。

 

おわりに

この記事では、Hinemo コマンドラインツールを用いて、Hinemosにて実行したジョブの実行履歴をテキストファイル形式で出力してみました。
参考になれば幸いです。