ajschange
ジョブネットのコメントを変更し、2025/05/01までの「期日指定」を設定する
ajschange -C 変更後のコメントです -p 2025/05/01 AJSROO1:/ジョブネットパス
-C コメント
ユニットのコメントを変更します。指定できる文字数は,1〜80(単位:バイト)です。
-Cは大文字
ちなみに小文字の-cだと
- -c コマンドテキスト
- コマンドテキストを変更します。
指定できる文字数は,1〜1,023(単位:バイト)です。
- -p 年/月/日
- ジョブネットの実行有効期日を変更します。
- 年期日の西暦年を指定します。指定できる値は,1994〜2036(単位:西暦年)です。
- 月期日の月を指定します。指定できる値は,1〜12(単位:月)です。
- 日期日の日を指定します。指定できる値は,1〜31(単位:日)です。
-L
ジョブグループ,実行登録していないジョブネット,およびジョブの定義内容を変更します。
-E
実行登録済みのジョブネットおよびジョブの定義内容を変更します。
-E,-Lについてはajschgjob/ajschgnetにも同じ内容のオプションがある。
ajsdefine
定義が書かれたファイルから任意のジョブグループ配下にジョブネットを回復する
ajsdefine -F AJSROOT1 -e -d 回復先となるAJSROOT1を除いたジョブグループパス unitで始まる定義が書かれたファイル
「パスからAJSROOT1を除いたジョブグループ」配下に回復される。
-eは配置先にジョブがある場合に上書きしないオプション
ajsdefine : JP1/Automatic Job Management System 3 コマンドリファレンス
-e
ユニットの定義先に,ユニット定義ファイルに記述したユニットと同一名称のユニットがある場合,エラーとします。なお,ユニット定義ファイル中の記述で,同一階層に同一名称のユニット名の指定がある場合は,エラーとします。情報は更新されません。
-d
-d 定義先ユニット名
ジョブネットワーク要素の定義先となる,ジョブグループ名,またはジョブネット名を指定します。
指定できる文字数は,1~255(単位:バイト)です。ホストリンクジョブネット名,論理ホスト名,および実行IDは指定できません。ネスト数が許容最大数(30個)を超えるジョブグループやジョブネットは指定できません。
省略した場合,「AJSROOT」が仮定されます(ジョブネットワーク要素はジョブグループ「AJSROOT」中に作成されます)。
コマンドの動作は以下の通りです: [1]
-e(または省略した場合): 同じ名称のユニットがすでに存在する場合はエラーになり、定義は更新されません。-i(新規作成モード): 同じ名称のユニットがすでに存在する場合はエラーになります。-f(強制変更モード): 同じ名称のユニットがすでに存在する場合、既存の定義を上書きして更新します。 [1]既存のジョブネットやジョブ定義を上書き更新したい場合は、-fオプションを指定してください。
なお、JP1の実行登録済みジョブネットの情報を更新する場合は、事前に計画実行登録や確定実行登録の登録解除が必要になる点にご注意ください
退避と回復の例)
移行元:以下のジョブグループ配下のジョブネットすべてを退避する
AJSROOT1:/jobgroup1/subjobgroup1/* su - jp1admin へスイッチ ajsprint -F AJSROOT1 -a "AJSROOT1:/jobgroup1/subjobgroup1/*" > /tmp/ajsprint_yyyymmdd.txt
移行先:上記でエクスポートしたジョブネットを以下のジョブグループ配下へ回復する
AJSROOT2:/jobgroup2/subjobgroup2 su - jp1admin へスイッチ ajsdefine -F AJSROOT2 -d "AJSROOT2:/jobgroup2/subjobgroup2" /tmp/ajsprint_yyyymmdd.txt
unit定義中のha=yパラメータで保留を設定する
ha=yをunit定義中に入れることで回復時にジョブネットの保留が設定される。実行登録後の保留とは違い、元々が保留設定となる。省略可能。省略した場合,nが仮定される。
ajschgjob
-FFオプション
監視対象ファイル名を定義する。
ajschgjob : JP1/Automatic Job Management System 3 コマンドリファレンス
/home/hoge/kansi.txtを監視、実行エージェントをhogesv01に変更
ajschgjob -FF /home/hoge/kansi.txt -ex hogesv01
-enオプション
環境変数を変更する
-en KH1=hoge1 -en KH2=hoge2 というように複数の環境変数を続けて書ける。
ajsentry
毎日X時に実行されるスケジュールで「X時より後に」以下の登録コマンドを実行した場合
次回から実行登録する
ajsentry -F AJSROOT1 -f /test2
⇒-fオプションは時刻が経過済みの場合は次回スケジュールから登録される
その日から実行登録する
ajsentry -F AJSROOT1 -s /test2
⇒-sオプションは時刻が経過済みであってもその日の予定があれば実行される
即時実行登録
ajsentry -F AJSROOT1 -n /test2
実行登録されているものに対して実行登録しようとするとエラーになる。
ajsentry -F AJSROOT1 -n /test2
KAVS0681-E ジョブネット(/test2)は既に登録されています
スケジューラサービスのサービス停止、起動が絡む場合の-oオプション
ajsentry -s -o AJSROOT1/test/testjobnet
ajsentry : JP1/Automatic Job Management System 3 コマンドリファレンス
-o
その日に実行予定のジョブネットで,実行開始予定時間がスケジューラーサービスの起動時間より前のジョブネットは,スケジューラーサービスの起動時に実行しません。
このオプションは-w,-m,-k,-n,-hオプションと同時には指定できません。また,このオプションはサービス起動モードがウォームスタートまたはディザスターリカバリースタートの場合に有効となります。
ajsleave
登録解除
ajsleave -F AJSROOT1 /test2
/JobGroupA の配下にあるすべてのルートジョブネットの実行登録をまとめて解除
ajsleave -R -E -T /JobGroupA
各オプションの意味
-R(Recursive): 下位階層への再帰指定
- 指定したジョブグループの下位にあるすべてのユニット(階層)を検索・操作の対象にします。
-E(Exclude Nested Jobnets): ネストされたジョブネットの除外
- ジョブネットの中に定義されている「ネストされたジョブネット」を処理対象から除外します(実行登録の解除はルートジョブネット単位で行うため、このオプションで絞り込みます)。
-T(Exclude Jobs): ジョブの除外
- ジョブネット配下にある「ジョブ」そのものを処理対象から除外します。
運用の注意点
- 引数の指定漏れに注意:
ajsleave -R -E -Tだけを出力して後ろに「ジョブグループ名」を記述し忘れると、引数不足エラーになります。- 実行タイミング:
特定のジョブネットの解除でお困りですか?もし可能であれば、特定の期間(日時)だけを解除したいのか、あるいはエラーが発生して困っているのかなど、現在の状況を教えていただけますと、より具体的な手順やコマンド例をご案内できます。
特定の期間(日時)だけを解除したい(Ask_AI)
JP1 では、日時の数え方に 「暦日(れきじつ・カレンダー上の日付)」 と 「実行日(基準時刻をまたぐ運用上の日付)」 の2種類があります。一般的な運用に合わせて、それぞれ以下のオプションを使用します。 [1]
1. 暦日(通常のカレンダー通り)で期間を指定する
- コマンド例(2023年6月1日 09:00 〜 2023年6月5日 18:00 を解除する場合)
bashajsleave -R -E -T -b 2023/06/01/09:00 -e 2023/06/05/18:00 /JobGroupAコードは注意してご使用ください。2. 実行日(JP1の基準時刻ベース)で期間を指定する []JP1 のスケジュール(48時間制や「当日26時」など)に合わせ、運用上の日付で指定する場合は、-v(開始日) と-w(終了日) オプションを使用します。
※時刻は指定できず、「日(1日単位)」での指定になります。 [1, 2]
- コマンド例(2023年6月1日 〜 2023年6月5日の実行日分を丸ごと解除する場合)
bashajsleave -R -E -T -v 2026/06/01 -w 2026/06/05 /JobGroupAコードは注意してご使用ください。
💡運用のポイントと注意点
💡 現在解除しようとしている対象は、プランニンググループで管理されているジョブネットでしょうか?
- はい(プランニンググループを使っている)
- いいえ(通常のジョブネット。特定の日の実行だけを止めたい)
特定の期間(日時)だけを解除する利点は何でしょうか(Ask_AI)
特定の期間(日時)だけを実行登録から解除する(主にプランニンググループ配下のユニットを対象とする)最大の利点は、将来のスケジュール設定を壊さずに、特定の期間だけ「業務を完全に停止・変更」できる点にあります。主に、以下のような運用上のメリットがあります。1. 将来の自動スケジュールを維持できる期間を指定せずに全体の実行登録を解除(ajsleave)してしまうと、その日以降のすべての実行予定(世代)が消えてしまいます。特定の期間だけを解除すれば、その期間が過ぎた後のスケジュール(来週や来月など)は自動的に有効なまま残るため、再登録し忘れるリスクがありません。2. 大型連休やシステムメンテナンスに対応しやすい年末年始やゴールデンウィーク、または数日間に及ぶデータ移行などのシステムメンテナンス期間中、「この5日間だけはジョブを一切動かしたくない」という場合に役立ちます。対象期間のスケジュールだけをピンポイントで消去できます。3. スケジュール定義(カレンダー)の変更が不要通常、特定の日にジョブを止めたい場合は「JP1カレンダーの運用日を休業日に変更する」という方法もあります。しかし、期間指定の解除を使えば、カレンダー定義そのものを書き換える必要がないため、他のジョブネットへの予期せぬ影響を防げます。4. 無駄な「実行中止(スキップ)」のログを残さない1回だけのスキップであれば「実行中止」の操作(ajschgstat)が便利ですが、期間が長く対象ジョブネットが大量にある場合、JP1の画面(View)上が「中止」のグレーのアイコンやログで埋め尽くされてしまいます。期間解除をすればスケジュール(世代)自体が最初から生成されないため、監視画面やログがすっきり綺麗に保たれます。
期間指定の解除について、他にも気になる点(コマンドの挙動や、実行中止との使い分けなど
)はありますか?
もしよろしければ、今回の操作の目的が「年末年始などの長期休暇対応」なのか、それとも「一時的なトラブルによる緊急停止」なのかなど、具体的な背景を教えていただけますと最適な運用方法をご提案できます。
特定の期間(日時)だけを解除するのは計画実行設定でも動作するでしょうか(Ask_AI)
結論から申し上げますと、ajsleaveコマンドによる特定の期間(日時)を指定した解除は、計画実行登録(スケジュール定義に基づき自動で次回世代を生成する登録方法)では正しく動作しません(意図した結果になりません)。計画実行登録の仕組み上、特定の期間だけを部分的に解除しようとしても、JP1 が自動的にスケジュールを再計算して同じ日時に新しい実行予定(世代)を再度作り直してしまうためです。この挙動の理由と、計画実行登録で特定の期間だけジョブを止めたい場合の正しい対処法を解説します。
なぜ計画実行設定では動作しないのか?計画実行登録(-m p)では、JP1 が常に「スケジュールルール」と「カレンダー」を監視しています。
ajsleave -b ... -e ...で特定の日の実行予定(世代)を削除する- JP1 は「予定されていた世代がなくなった」と認識する
- スケジュールルールに基づき、削除されたはずの同じ日時に、次回実行予定(世代)を自動で再生成してしまう
結果として、コマンド自体はエラーにならなくても、「消したはずの予定がすぐに復活する」という状態になり、特定の期間だけを止めることはできません。※期間指定(-b,-e等)の解除が真価を発揮するのは、日ごとに異なるルートジョブネットを切り替えて実行する*「プランニンググループ」*配下のユニットに対して実行する場合のみです。
計画実行設定で「特定の期間だけ」止める2つの正しい方法計画実行登録されているジョブネットを、特定の期間だけ動かしたくない場合は、以下のいずれかの方法を行います。方法1:カレンダー(休業日)を設定する(推奨:最も安全)特定の期間(例:年末年始の5日間など)を JP1カレンダー上で「休業日」に設定します。
- メリット: スケジュールルールが自動で休業日を回避(または前後にシフト)してくれるため、一番安全で確実です。
- 方法: JP1/AJS3 – View のカレンダー画面から設定するか、
ajsplanコマンドで休業日を反映します。方法2:対象期間の予定を「計画一時変更(実行中止)」にするすでに生成されている特定の期間の予定(世代)に対して、ステータスを「実行中止」に変更します。
- メリット: カレンダーやジョブの定義を一切変更せずに、その日だけをピンポイントでスキップできます。
- コマンド例(指定した日時の世代を計画一時変更で中止にする):
bashajschgstat -t "2026/06/01 09:00" -s 5 /JobNetAコードは注意してご使用ください。(※ステータス
5は「実行中止」を意味します)
💡 現在運用されている環境において、どちらの方法が適しているか確認させてください。
- 定期的な長期休暇(年末年始など)で、毎年同じように止めたい = 方法1(カレンダー) が最適です。
- 突発的なメンテナンス等で、今回の特定の数日間だけサクッと止めたい = 方法2(実行中止) が最適です。
今回の停止は、どのような理由(定期的な休み、一時的なメンテナンスなど)によるものでしょうか?状況に合わせて具体的な手順をご案内します。
実行エージェント追加
SV1(Linux)にSV2(Windows)のagentを登録
SV1のhostsにSV2のエントリがあるかを確認する
↓
SV1で
ajsagtshow -l
を実行し、現在の実行エージェント登録情報を確認する
↓
SV1で
ajsagtadd -a SV2
で実行エージェントにSV2を追加登録する
↓
再度SV1で
ajsagtshow -l
を実行し、追加後の実行エージェント登録情報を確認し、追加されたことを確認する
↓
SV2で
JP1/Base環境設定を起動し、
新規JP1ユーザーをSV1で追加する ※SV1ではなく「*」だと実行するサーバの制限はなくなる。
↓
追加した新規JP1ユーザーを実行したいジョブの実行権限をもつOSユーザーとマッピング登録する
