実施環境:
[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日は処理を行わないといったような少々込み入った設定となると、スケジュール設定の機能だけでは対応が難しくなってきます。
このような複雑なスケジュールを組みたい際、 Hinemos では「カレンダ」という機能を用います。
今回はこのカレンダ機能を用いて、複雑なスケジュールでジョブの起動を制御してみます。
なお、単純なスケジュールの組み方については以下の過去記事をご参照ください。
1. カレンダ
カレンダの設定は、「パースペクティブ」⇒「カレンダ」から編集できます。
カレンダを作成するには、画面左上のパネル「カレンダ[一覧]」の「作成」ボタンを押します。
「作成」ボタンを押すと、カレンダの編集画面が開きます。
まずはカレンダ ID とカレンダ名を設定します。
とりあえず今回は、カレンダ ID は「 calendar_test
」、カレンダ名は「カレンダー_テスト」にしました。
次にカレンダの有効期限を設定します。
入力欄右側の「...」ボタンを押して日時を編集します。
とりあえず今回は、設定時点から1年間ほど有効となるようにしました。
さて、いよいよカレンダ本体の編集に入っていきます。
まずは「追加」ボタンを押します。
すると、以下のような画面が開きます。
とりあえず今回は開始時刻を「 15:00:00 」、終了時刻を「 15:30:00 」にし、稼働非稼働を「稼働」にして「 OK 」を押します。
これで、「 15:00 ~ 15:30 の間はジョブが稼働できる」という設定になりました。
さらに「追加」ボタンを押して、今度は開始時刻を「 15:10:00 」、終了時刻を「 15:20:00 」にし、稼働非稼働を「非稼働」にして「 OK 」を押します。
カレンダの設定は順序が上の設定ほど優先されるので、後に追加した設定を選択した状態で「上へ」ボタンを押し、設定の順序を入れ替えます。
これで、「 15:00 ~ 15:10 、 15:20 ~ 15:30 の間はジョブが稼働できる」という設定になりました。
最後にもう一度「追加」ボタンを押して、今度は開始時刻を「 15:12:00 」、終了時刻を「 15:15:00 」にし、稼働非稼働を「稼働」にして「 OK 」を押します。
そしてその設定を「上へ」ボタンで一番上に持ってきます。
これで、「 15:00 ~ 15:10 、 15:12 ~ 15:15 、 15:20 ~ 15:30 の間はジョブが稼働できる」という設定になりました。
「 OK 」を押してこの設定を保存します。
確認メッセージが出たら「 OK 」を押します。
これでカレンダが作成できました。
左上パネル「カレンダ[一覧]」からカレンダを選択することで右上パネル「カレンダ[月間予定]」に起動スケジュールが表示され、さらにそこから日付をクリックすることで下パネル「カレンダ[週間予定]」にも起動スケジュールが可視化されます。
2. スケジュール設定
さて、次に作成したカレンダをジョブに適用していきます。
今回ジョブは以下の過去記事で作成したものを使用しました。
★
まずは通常通り「スケジュール作成」ボタンを押します。
実行契機 ID を「 schedule_test
」、実行契機名を「スケジュール_テスト」、ジョブ ID を「 job_test
」にし、スケジュール設定を「毎時 00 分から 01 分ごとに繰り返し実行」にします。
ここでいよいよカレンダの登場です。
カレンダ ID から先ほど作成したカレンダを選択します。
これで、設定したジョブはカレンダで「稼働」に設定した期間のみ動作するようになります。
「 登録 」を押して、スケジュールを保存します。
確認メッセージが出るので、「 OK 」を押します。
これで、カレンダを用いたスケジュールが設定できました。
3. 確認
実際にジョブの動作を待って結果を確認してみると、カレンダで設定した日時の期間だけジョブが動作しているとわかります。
[root@testhost ~]# ls -l /tmp/test.log
-rw-r--r-- 1 root root 989 2月 4 15:29 /tmp/test.log
[root@testhost ~]# cat /tmp/test.log
2024年 2月 4日 日曜日 15:00:01 JST
2024年 2月 4日 日曜日 15:01:01 JST
2024年 2月 4日 日曜日 15:02:01 JST
2024年 2月 4日 日曜日 15:03:01 JST
2024年 2月 4日 日曜日 15:04:01 JST
2024年 2月 4日 日曜日 15:05:01 JST
2024年 2月 4日 日曜日 15:06:01 JST
2024年 2月 4日 日曜日 15:07:01 JST
2024年 2月 4日 日曜日 15:08:01 JST
2024年 2月 4日 日曜日 15:09:01 JST
2024年 2月 4日 日曜日 15:12:01 JST
2024年 2月 4日 日曜日 15:13:01 JST
2024年 2月 4日 日曜日 15:14:01 JST
2024年 2月 4日 日曜日 15:20:01 JST
2024年 2月 4日 日曜日 15:21:01 JST
2024年 2月 4日 日曜日 15:22:01 JST
2024年 2月 4日 日曜日 15:23:01 JST
2024年 2月 4日 日曜日 15:24:01 JST
2024年 2月 4日 日曜日 15:25:01 JST
2024年 2月 4日 日曜日 15:26:01 JST
2024年 2月 4日 日曜日 15:27:01 JST
2024年 2月 4日 日曜日 15:28:01 JST
2024年 2月 4日 日曜日 15:29:01 JST
[root@testhost ~]#