0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Hinemos: 定期的に起動しているジョブを一時的に止めたい場合

Posted at
実施環境:
Linux
[root@testhost ~]# uname -a
Linux testhost 4.18.0-338.el8.x86_64 #1 SMP Fri Aug 27 17:32:14 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@testhost ~]# cat /etc/redhat-release
CentOS Stream release 8
[root@testhost ~]# yum list installed | grep hinemos
hinemos-7.0-agent.noarch                           7.0.1-1.el                                                 @@commandline
hinemos-7.0-manager.x86_64                         7.0.1-1.el8                                                @@commandline
hinemos-7.0-web.x86_64                             7.0.1-1.el8                                                @@commandline

0. 概要

例えばメンテナンス中でデータの処理を行ってほしくないときなど、ジョブを一時的に動かさないようにしたい場合があります。
ただ、このような場合に毎回ジョブを作ったり消していたりしては、非常に効率が悪いです。
Hinemos はこのような場合に対応できるように、ジョブの定期実行を一時的に無効化したり、ジョブをスキップするようにしたりできます。
今回はそのような方法をいくつか紹介します。

1. 今回使用するジョブ

今回使用するジョブは、以下の通りです。

1.1. ジョブユニット

  • ジョブ ID : job_unit_00
  • ジョブ名:ジョブユニット_00

WS000110.JPG

1.2. ジョブネット

  • ジョブ ID : jobnet_00
  • ジョブ名:ジョブネット_00

WS000111.JPG

1.3. ジョブ

1.3.1. 1 番目のジョブ
  • ジョブ ID : job_01
  • ジョブ名:ジョブ_01
  • 起動コマンド: echo "01" >> /tmp/00.log

WS000112.JPG

1.3.2. 2 番目のジョブ
  • ジョブ ID : job_02
  • ジョブ名:ジョブ_02
  • 起動コマンド: echo "02" >> /tmp/00.log
  • 待ち条件 - 名前:ジョブ(終了状態)
  • 待ち条件 - ジョブ ID : job_01
  • 待ち条件 - 値:正常

WS000113.JPG

WS000115.JPG

1.3.3. 3 番目のジョブ
  • ジョブ ID : job_03
  • ジョブ名:ジョブ_03
  • 起動コマンド: test -f /tmp/00.txt
  • 待ち条件 - 名前:ジョブ(終了状態)
  • 待ち条件 - ジョブ ID : job_02
  • 待ち条件 - 値:正常

WS000123.JPG

WS000116.JPG

/tmp/00.txt が無ければ、コマンドが戻り値「 1 」を返してこのジョブがエラー終了します。
(厳密には、デフォルトの設定だと戻り値「 1 」の場合の終了状態は「警告」という扱いになります。)

1.3.4. 4 番目のジョブ
  • ジョブ ID : job_04
  • ジョブ名:ジョブ_04
  • 起動コマンド: echo "04" >> /tmp/00.log
  • 待ち条件 - 名前:ジョブ(終了状態)
  • 待ち条件 - ジョブ ID : job_03
  • 待ち条件 - 値:正常

WS000119.JPG

WS000118.JPG

1.3.5. 5 番目のジョブ
  • ジョブ ID : job_05
  • ジョブ名:ジョブ_05
  • 起動コマンド: echo "05" >> /tmp/00.log
  • 待ち条件 - 名前:ジョブ(終了状態)
  • 待ち条件 - ジョブ ID : job_04
  • 待ち条件 - 値:正常

WS000121.JPG

WS000120.JPG

2. ジョブネットの定期実行を止める

定期的に起動するジョブネット全体について定期実行を止めるには、スケジュールを右クリックして「無効」を選択します。

WS000101.JPG

WS000102.JPG

WS000103.JPG

WS000104.JPG

WS000105.JPG

これで、ジョブが定期的に起動されなくなりました。
もう一度右クリックして「有効」を押せば、元に戻せます。

WS000106.JPG

WS000107.JPG

WS000108.JPG

WS000109.JPG

ジョブネット全体について定期起動を止めたい場合は、後述の方法よりもこちらの方が手っ取り早いかと思います。

3. 一部のジョブをスキップする

ジョブネットの中の一部のジョブだけ実行せず、そのまま次のジョブを実行させるには、「制御(ジョブ)」タブの「スキップ」にチェックを入れ、「終了状態」を「正常」にします。

WS000162.JPG

実際に実行してみると、「スキップ」にチェックを入れたジョブだけスキップされていることがわかります。

WS000164.JPG

OS 側から見ても、「スキップ」にチェックを入れたジョブだけ実行されていないことがわかります。

Linux
[root@testhost tmp]# cat 00.log
01
02
05
[root@testhost tmp]#

長期間ジョブを動かさないようにしたい場合は、この設定が利用できるかと思います。

4. 一部のジョブを保留する

ジョブネットの中の一部のジョブだけ実行せず、さらにその時点でジョブネットの実行を一時停止するには、「制御(ジョブ)」タブの「保留」にチェックを入れます。

WS000168.JPG

実際に実行してみると、「保留」にチェックを入れたジョブの時点でジョブネットが一時停止されていることがわかります。

WS000179.JPG

保留中となっているジョブについて保留解除をすることで、保留していたジョブからジョブネットの実行を再開できます。

WS000181.JPG

WS000182.JPG

WS000183.JPG

OS 側から見ると、保留解除したことできちんと最後までジョブネットが実行できていることがわかります。

[root@testhost tmp]# cat 00.log
01
02
04
05
[root@testhost tmp]#

短時間だけジョブを止めて、その後止めていたジョブを動かしたい場合は、こちらの方が便利かと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?