adshhkコマンド(スプールジョブを削除する)
形式
adshhk 対象リストファイル名 レポートファイル名 ログファイル名[日数]
機能
対象リストファイル名に指定した対象リストファイルに従って,スプールジョブを削除します。実行結果はレポートファイル名に指定したファイルにcsv形式で出力します。また,エラーメッセージなど実行時に出力するメッセージは,ログファイル名に指定したファイルに出力します。
このコマンドはadshevtoutコマンドと,スプールディレクトリ単位で排他制御を実施します。adshhkコマンドがスプールディレクトリのロックを確保できない場合は,KNAX4425-Eメッセージを出力して,該当するスプールディレクトリの処理をスキップします。
引数
- 対象リストファイル名
-
削除対象を指定した対象リストファイルのファイル名を指定します。
対象リストファイルには,削除対象のスプールディレクトリのスプールルートディレクトリ名と日数を指定しておきます。指定した日数(adshhkコマンド実行日の前日を基点にしてカウントした日数)以前に実行したスプールジョブが,指定したスプールルートディレクトリから削除されます。
対象リストファイルはテキストファイル形式で,複数行記述できます。各行は先頭から記述し,1行には改行コードを含み,4,095バイト以内で記述してください。また,指定値は"(ダブルクォーテーション)で囲んでください。
対象リストファイルの形式を次に示します。
"スプールルートディレクトリ名"[,"日数"]
各項目の指定内容を次に示します。
- スプールルートディレクトリ名 〜<パス名>((1〜128バイト))
-
スプールジョブを削除するスプールルートディレクトリ名を記述します。フルパスで記述することを推奨します。
- 日数 〜<符号なし整数>((1〜999))
-
指定した日数(adshhkコマンド実行日の前日を基点にしてカウントした日数)以前に実行したバッチジョブのスプールジョブディレクトリを削除します。省略した場合は,adshhkコマンドで指定した日数になります。両方に日数の指定がない場合は,その行の指定はエラーとなり,後続行の処理をします。
「""」と指定したときは,日数を省略したと解釈します。
- レポートファイル名
-
実行結果を出力するファイル名を指定します。レポートファイルはcsv形式で出力します。指定したファイルが存在しない場合は新規に作成し,すでに存在する場合はそのファイルの内容を上書きします。
レポートファイルのアクセス権限は次のように設定されます。
-
Windowsの場合:出力先フォルダの設定に従います。
-
UNIXの場合:600
レポートファイルの出力例は,「3.9 スプールジョブを削除する」を参照してください。
-
- ログファイル名
-
エラーメッセージなどを出力するファイル名を指定します。指定したファイルが存在しない場合は新規に作成し,すでに存在する場合はそのファイルの内容を上書きします。
ログファイルのアクセス権限は次のように設定されます。
-
Windowsの場合:出力先フォルダの設定に従います。
-
UNIXの場合:600
-
- 日数 〜<符号なし整数>((1〜999))
-
指定した日数(adshhkコマンド実行日の前日を基点にしてカウントした日数)以前に実行したバッチジョブのスプールジョブディレクトリを削除します。この引数は,対象リストファイル名に指定した日数よりも優先します。省略した場合は対象リストファイル名に指定した日数になります。
この引数の指定を省略した場合は,必ず対象リストファイルに日数を指定してください。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1 |
エラー終了 |
2 |
スプールディレクトリがほかのプログラムで処理中のため削除に失敗 (ただし,ほかのエラーが発生していると2以外になる) |
253 |
標準エラー出力でエラー発生 |
注意事項
-
コマンドを実行したユーザーに削除権限があるスプールジョブだけが削除の対象となります。削除権限がないスプールジョブは削除の失敗をレポートします。全ユーザーのスプールジョブを削除対象にしたい場合は,すべてのスプールジョブに削除権限があるユーザーで実行してください。
-
スプールジョブディレクトリの下に作成したファイルは,そのバッチジョブが作成したファイルかどうかに関係なく,削除権限があれば削除します。
-
スプールジョブディレクトリの下にサブディレクトリが作成されている場合,削除に失敗することがあります。
-
ジョブ実行開始の日付がわからない場合は削除しません(エラー扱いとします)。
-
スプールジョブディレクトリが「ジョブ識別子-ジョブ名」または「ジョブ識別子-」の形式のスプールジョブだけ削除します。ジョブ識別子の後ろに「-」が付いていないスプールジョブディレクトリは,バッチジョブが実行中である場合や,「3.11.1 ジョブの強制終了の方法」に示す方法以外の手段で不当に終了させられた場合などの状態を示しているため,実際の状態に関係なく削除しません。
-
削除処理中にエラーが発生した場合,そのスプールジョブの削除処理は途中まで進んでいる可能性があります。
-
レポートファイルに出力された結果はジョブ番号の順で出力されません。必要に応じてソートプログラムなどでソートしてください。
-
adshevtoutコマンド(ジョブ定義スクリプトの稼働実績情報の出力)で処理中のスプールディレクトリを指定した場合,スプールジョブは削除されません。
-
削除するスプールジョブはスプールジョブ管理ファイルから削除するため,削除処理中に処理を中断すると,adshhkコマンドを再実行しても削除されません。その場合,削除に失敗したスプールジョブは手作業で削除してください。
-
削除に失敗したスプールジョブを手作業で削除する場合には,削除したいスプールジョブディレクトリ,およびその下位に存在するすべてのファイルをrm -rコマンドなどで削除してください。なお,削除するときには,スプールジョブディレクトリやその下位のファイルの作成日付などを参考に,ジョブが終了していることを確認して削除してください。そのため,運用停止後に削除することを推奨します。
使用例
-
次のバッチジョブを削除します。
/home/user001/jp1as/spoolディレクトリの7日以上前に実行したバッチジョブ
/home/user999/jp1as/spoolディレクトリの30日以上前に実行したバッチジョブ
事前に対象リストファイル「/home/kanrisya/hk/target」に次の内容を記述します。
"/home/user001/jp1as/spool","7" "/home/user999/jp1as/spool","30"
この場合,次のコマンドを実行します。レポートは/home/kanrisya/hk/result.csvファイルに保管します。
adshhk /home/kanrisya/hk/target /home/kanrisya/hk/result.csv /home/kanrisya/hk/result.log
作成されたレポートの例には,「3.9 スプールジョブを削除する」を参照してください。