外部コマンドの実行

最終更新日: 2022年6月17日

利用方法

Wagby から外部コマンド(例:Windows OS における EXE ファイル)を定期的に実行することができます。

ジョブの設定

設定方法

  1. 管理者権限をもったアカウント(adminなど)でログオンします。
    管理者アカウントでログオン
  2. 管理処理メニューから「ジョブ管理... > ジョブスケジュール検索」画面を開きます。
    管理処理メニュー
  3. 「登録画面へ」ボタンを押下し、登録画面に遷移します。
    ジョブスケジュール検索画面
  4. ジョブ名から「ProcessExec」を選択します。選択すると、その下の説明欄に「外部コマンドの実行」と表示されます。
    「ProcessExec」を選択
  5. ジョブパラメータの「追加」ボタンを押し、キーと値を指定します。
    ここで実行したいコマンドを記述します。下図は「C:ドライブの内容を確認する」という次のコマンドを指定した例です。
    キーと値の記述方法については、指定できるジョブパラメータをお読みください。
    cmd /C "dir C:\"
    コマンドを指定
  6. ジョブの実行スケジュールを指定します。
  7. 「有効」にチェックを入れます。これにより、このジョブが有効になります。
    ジョブを有効にする
  8. 「ジョブ実行するアカウント」を指定します。ここでは"jobadmin"とします。
    「パスワード」欄には上で指定したアカウントのパスワードを入力します。
    実行アカウントとパスワードを入力
    アカウント"jobadmin"を利用するには事前に「準備:ジョブ実行アカウントを利用可能にする」を行う必要があります。
  9. 「保存」ボタンを押してジョブスケジュールを登録します。指定した時間になると、コマンドが実行されます。
    ジョブスケジュールの登録が完了した

ワンポイント

ここでいう外部コマンドは、アプリケーションサーバで稼動するものです。ファイルパスの記述は、アプリケーションサーバのフォルダ構成に合わせてください。

このジョブの特徴

複数のコマンドを実行したい場合は、1つのコマンドに対応したジョブスケジュールを個別に用意してください。

ジョブの実行結果はログファイル(system.log)に記載されます。 ただし実行結果が一切の戻り値(文字列)を返さない、あるいは外部コマンドの記述が誤っているなどの理由でジョブが実行されなかった場合は、実行結果はログに含まれません。その代わり、次のように記録されます。

[WARN jp.jasminesoft.jfc.job.JFCBaseJobBean executeInternal] No message is returned.

指定できるジョブパラメータ

ジョブに指定するパラメータを複数、指定することができます。
ここで指定できるパラメータ(キーと値)は次の通りです。

キー(パラメータ名) 必須 説明 値の記述例
cmd 外部コマンドを指定します。 cmd /C "dir C:\"
dir 外部コマンドを実行するディレクトリを指定します。 C:\work
env 外部コマンドに与える環境変数を「環境変数名=値」という形式で指定します。複数の環境変数を指定する場合は、パラメータのキーを env ではなく env1, env2, env3,... としてください。 SAMPLE=sample
maintenance このジョブを実行する前にメンテナンスモードに切り替えることができます。ジョブ実行後にメンテナンスモードも終了します。 true
maintenanceOption メンテナンスモード切り替え時にログオン済みであったアカウントへの対応方法を指定します。 logout : ジョブ実行前にログオンしていたアカウントを強制ログアウトさせる。
fail : ジョブ実行前にログオンしているアカウントがいれば、ジョブを失敗させる。
(省略時) : ログオンしているアカウントはそのままに、モードを切り替える。
lock 実行前にロックするモデルを指定します。ジョブ終了後、ロックは解除されます。 customerなどのモデル名英語。空白区切りで複数のモデルを指定できます。
cache ジョブ終了後、指定したモデルのキャッシュをクリアします。 customerなどのモデル名英語。空白区切りで複数のモデルを指定できます。

Unix系OSの場合

環境変数 KEY の値を返すスクリプト sample.sh を customize/webapp フォルダに用意した、とします。この場合はビルド後、wagbyapp/webapps/wagby に sample.sh がコピーされた状態となります。

スクリプトsample.shの内容は次の通りとします。

echo $KEY

このスクリプトを実行するためのジョブパラメータは次のようになります。

dir ../webapps/wagby/
cmd bash sample.sh
env KEY=wagby

実行するとコンソールに wagby と表示されます。

ジョブの実行を停止する

ジョブを一時的に無効にすることができます。

  1. 管理者権限をもったアカウントでログオンします。
  2. 管理処理メニューから「ジョブ管理... > ジョブスケジュール検索」画面を開きます。
  3. 該当する「ジョブスケジュール」を検索し、更新画面を開きます。
  4. 「有効」フラグについているチェックをはずし、保存します。
    ジョブを無効にする

実行結果をメールで送信する

ジョブの実行結果をメールで送信することができます。

多重実行の抑制

ジョブの多重実行を行うことはできません。

あるジョブを 1 分毎に起動させるようにした場合、1 分後にこのジョブの実行が終了していなければ、新しいジョブは実行されません。

すぐに実行する

時間指定ではなく、このジョブを今すぐ実行することもできます。「ジョブの即時実行」をお読みください。

実行対象 8.3.1

オートスケール環境でない場合、常に "1インスタンス" としてください。

オートスケール環境でジョブを運用する場合、"1インスタンス" と "全インスタンス" を選択することができます。[詳細...]