複数ジョブを一気に無効化・有効化するマクロ(Systemwalker)

本ページではSystemWalkerの複数ジョブを一気に無効化・有効化するマクロを紹介します。

本マクロの用途

複数ジョブを一気に無効化または有効化したい際に使用するマクロです。例えばシステムテスト時など、特殊な条件でジョブネットを起動する際に、不要なジョブを一括無効化・有効化するのに便利です。

本マクロの仕様

踏み台(入り口)サーバに指定のユーザでログイン後、操作ログをD:¥temp¥work¥ttmacro¥ttlog¥yyyymmdd_hhmmss.txtに保存します。

踏み台サーバよりSystemWalkerのマネージャーが動作しているサーバ(富士通のベンダ用語で「スケジュールサーバ」と呼称されます)へログインします。

ポップアップが出力し、無効化するか有効化するか尋ねられます。そこで半角英数字の1を入力するとD:¥temp¥work¥ttmacro¥list¥swjoblist.txtに記載のある複数ジョブを一括無効化します。 2を入力すると、同じリストに記載のあるジョブを一括有効化します。

ジョブ無効化・有効化コマンドを発行後、サーバよりログアウトします。(一度無効化すると、有効化操作をするまで無効化状態が保たれます。逆も同様です。)

本マクロの注意事項

本マクロは、System Walker Operation Managerのミドルウェアが導入されていることが前提となります。

また、スケジュールサーバはLinuxサーバである必要があります。スケジュールサーバがWindowsサーバの場合、本マクロと同様のコマンドを発行するMS-DOSのマクロバッチファイルを一時的にサーバ上へアップロードして、作業終了後にサーバからバッチファイルを削除するなどの裏技で対応すると良いでしょう。(サーバ上にファイルを残さなければリリースになりません)

詳しくは当HPMS-DOS(バッチ)をご確認下さい。


なお、本マクロは以下の形式でコマンドを発行します。

jobschctljob [プロジェクト名/]ジョブネット名/ジョブ名 control [-sys サブシステム番号]

プロジェクト名は別でも構いませんが、サブシステム番号は同一であることを前提としています。サブシステム番号は自分の環境に併せて修正してください。

D:¥temp¥work¥ttmacro¥list¥swjoblist.txtは以下の形式で1ジョブネット毎に改行して下さい。

[プロジェクト名A/]ジョブネット名1/ジョブ名①
[プロジェクト名B/]ジョブネット名2/ジョブ名②
[プロジェクト名C/]ジョブネット名3/ジョブ名③
[プロジェクト名A/]ジョブネット名1/ジョブ名④

本コマンドの制約事項として、ジョブは必ずプロジェクト1/ジョブネット2/ジョブ3の形式である必要があります。

【例】
プロジェクト1/ジョブネット2/ジョブネット3/ジョブ4というジョブがあった場合、無効化・有効化対象に入れるのにフルパスで記載するのはNGです。

プロジェクト1/ジョブネット2/ジョブネット3/ジョブ4⇒×
プロジェクト1/ジョブネット3/ジョブ4⇒○

抜くのは間にある「ジョブネット2」です。間違い易いポイントなので注意しましょう。

マクロの配置やログの出力先、仕様などのその他共通注意事項は当サイトで扱うtera termマクロの共通ルールをご確認下さい。

コード

;#################################################################
;ジョブ一括無効化・有効化マクロ
;作成日:yyyymmdd
;作成者:wildfish
;更新日:yyyymmdd
;更新者:wildfish
;説明:複数ジョブを一気に無効化または有効化します。
;踏み台(入り口)サーバに指定のユーザでログイン後、操作ログを以下に保存します。
;D:¥temp¥work¥ttmacro¥ttlog¥yyyymmdd_hhmmss.txt
;踏み台サーバよりSystemWalkerのマネージャーが動作しているサーバへ
;ログインし、ジョブを無効化するか有効化するか尋ねます。 ;1を入力した場合、D:¥temp¥work¥ttmacro¥list¥swjoblist.txtに
;記載のある複数ジョブネットを一括無効化します。
;2を入力した場合有効化します。
;ジョブ無効化・有効化コマンドを発行後、サーバよりログアウトします。
;#################################################################

;#################################################################
;ログイン、接続処理
;#################################################################

username = 'root'
hostname = 'ホスト名';←踏み台サーバのホスト名またはIPを記入します

msg = 'passwordを入力'
passwordbox msg 'Get password'
Password = inputstr

msg = hostname
strconcat msg ':22 /ssh /auth=password /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg Password

connect msg

settitle"ジョブ一括無効化・有効化マクロ"

;#################################################################
;操作ログの自動保存処理
;#################################################################

getdate datestr
strcopy datestr 1 4 yearstr
strcopy datestr 6 2 monthstr
strcopy datestr 9 2 daystr
gettime timestr
strcopy timestr 1 2 hourstr
strcopy timestr 4 2 minutestr
strcopy timestr 7 2 secondstr

filename = 'D:¥temp¥work¥ttlog¥'
strconcat filename yearstr
strconcat filename monthstr
strconcat filename daystr
strconcat filename '_'
strconcat filename hourstr
strconcat filename minutestr
strconcat filename secondstr
strconcat filename '.txt'

logopen filename 0 0

wait ' ~]#'

;#################################################################
;作業担当者出力
;#################################################################
inputbox '作業者名を半角英小文字で入力' '作業担当者名入力画面'
Sagyotan = inputstr
echotan = 'echo '
strconcat echotan Sagyotan
sendln echotan
wait ' ~]#'
;#################################################################
;作業担当者出力終了
;#################################################################

;#################################################################
;スケジュールサーバログイン
;#################################################################
sendln 'ssh ホスト名';←スケジュールサーバのホスト名またはIPを記入
sendln Password
wait ' ~]#'
;#################################################################
;スケジュールサーバログイン終了
;#################################################################

;#################################################################
;ジョブ無効化・有効化・終了の選択開始
;#################################################################

inputbox ' 1:ジョブ無効化\n 2:ジョブ有効化\n 3:終了' '動作を半角数字で入力'
str2int SelectNo0 inputstr

if SelectNo0 = 1 Then
goto Mukouka

elseif SelectNo0 = 2 Then
goto Yuukouka

elseif SelectNo0 = 3 Then
goto end

endif

;#################################################################
;ジョブ無効化・有効化・終了の選択終了
;#################################################################

;#################################################################
;無効化を選択した場合の動作
;#################################################################
:Mukouka fileopen fhandle 'D:¥temp¥work¥ttmacro¥list¥swjoblist.txt' 0

:loop
filereadln fhandle line
if result goto fclose

jobactionctrl = '/opt/FJSVJOBSC/bin/jobschctljob '
strconcat jobactionctrl line
strconcat jobactionctrl ' disable -sys 1';←サブシステム番号(末尾の1)は自分の環境に合わせて変えましょう

sendln jobactionctrl
wait' ~]#'
goto loop
endif

:fclose
fileclose fhandle

;#################################################################
;無効化ループ終了
;#################################################################


;#################################################################
;有効化を選択した場合の動作
;#################################################################
:Yuukouka fileopen fhandle 'D:¥temp¥work¥ttmacro¥list¥swjoblist.txt' 0

:loop
filereadln fhandle line
if result goto fclose

jobactionctrl = '/opt/FJSVJOBSC/bin/jobschctljob '
strconcat jobactionctrl line
strconcat jobactionctrl ' enable -sys 1';←サブシステム番号(末尾の1)は自分の環境に合わせて変えましょう

sendln jobactionctrl
wait' ~]#'
goto loop
endif

:fclose
fileclose fhandle

;#################################################################
;有効化ループ終了
;#################################################################

;#################################################################
;終了メッセージ出力
;#################################################################

sendln 'echo MISSION COMPLETED'
wait' ~]#'
:end sendln 'exit'
wait' ~]#'
sendln 'exit'
;#################################################################

tera term macroリスト

メニュー

ページのトップへ戻る