イベントハンドラ
Plesk で行う特定のアクション、たとえば:
- 顧客アカウントの作成
- IP アドレスの削除
- ドメインのホスティング設定の更新
などは、Plesk に イベント と認識されます。各イベントに対し、事前定義されたコマンドをイベント発生時に毎回実行するイベントハンドラを 1 つ以上作成できます。
特定のイベントが発生するたびに特定のアクションまたは一連のアクションを実行したい場合にはイベントハンドラが便利です。たとえば、契約を作成するたびに起動するイベントハンドラを作成し、メールボックスを自動的に作成して外部サービスにリクエストを送信するように構成したりできます。
イベントハンドラの追加
-
[ツールと設定] > [イベントマネージャ]の順に選択します。
-
[イベントハンドラを追加]をクリックします。
-
ハンドラをトリガするイベントを「イベント」リストから選択します。
-
[優先度]の下で、ハンドラの実行優先度を設定します。これには、リストから選択するか、フィールドにカスタム番号を入力します。1 つのイベントに複数のハンドラを割り当てる場合に優先度が重要になります。この場合、ハンドラは優先度に従って降順でトリガされます(優先度が最高のハンドラが最初にトリガされ、続いて優先度が 2 番目のハンドラがトリガされます)。
-
ハンドラが代理で実行されるシステムユーザを「ユーザ」リストから選択します。
注釈: サーバ管理者は root ユーザの代わりにサーバで実行されるイベントハンドラを作成できます。root アカウントの使用を制限するには、
root.event_handler.lock
という名前の空ファイルを/usr/local/psa/var/
に作成します。 -
イベントハンドラが起動されると常に実行されるコマンドが含まれるシェルスクリプトまたは .bat ファイルのパスを、[コマンド]フィールドに入力します(たとえば、
/usr/local/psa/bin/script.sh
またはC:\Windows\Temp\script.bat
)。注釈: スクリプトに実行権限を付与してください。これには、コマンド
chmod 755 <script.sh>
を実行します。 -
[OK]をクリックします。
イベントパラメータを渡す
イベントハンドラは起動するたびに、イベントに関連する特定のデータ(「イベントパラメータ」)を渡します(渡されるデータはイベントハンドラに応じて異なります)。たとえば、「ドメインの作成」イベントハンドラは、以下のパラメータを渡します。
- 新規作成されたドメインの名前
- 新規作成されたドメインの GUID
- 新規作成されたドメインを所有する顧客アカウントの GUID
各パラメータは環境変数として渡され、シェルスクリプトや .bat ファイルで以下のように使用できます。
Plesk for Linux
シェルスクリプトでプレースホルダ ${ENVIRONMENT_VARIABLE_NAME}
を使用します(例:「${NEW_DOMAIN_NAME}
」)。イベントハンドラが起動すると、そのイベントに対応する値にプレースホルダが置換されます。
Plesk for Windows
bat ファイルでプレースホルダ %N
(例:「%1
」)を使用し、イベントハンドラ設定でコマンドの最後の関連する位置に必要な環境変数の名前を追加します。以下の例では
プレースホルダ「%1
」は環境変数「NEW_DOMAIN_NAME
」の値に置換され、「%2
」は「NEW_DOMAIN_GUID
」の値に置換されます。.bat ファイルで「%3
」を使用しても、いかなる値にも置換されません。コマンドの後で環境変数名が 2 つしか指定されていないためです。
各イベントハンドラのイベントパラメータと関連する環境変数名のリストは こちら を参照してください。
参考として、「顧客アカウントの作成」イベントのサンプルスクリプトを 2 つ示します。
-
(Plesk for Linux)
test-handler.sh
#!/bin/bash echo "--------------" >> /tmp/event_handler.log /bin/date >> /tmp/event_handler.log # information on the event date and time /usr/bin/id >> /tmp/event_handler.log # information on the user, on behalf of which the script was executed (to ensure control) echo "customer created" >> /tmp/event_handler.log # information on the created customer account echo "name: ${NEW_CONTACT_NAME}" >> /tmp/event_handler.log # customer's name echo "login: ${NEW_LOGIN_NAME}" >> /tmp/event_handler.log # customer's username in Plesk echo "--------------" >> /tmp/event_handler.log
-
(Plesk for Windows)
test-handler.bat
echo "--------------" >> c:\windows\temp\event_handler.log rem information on the event date and time date /T >> c:\windows\temp\event_handler.log rem information on the created customer account echo "customer created" >> c:\windows\temp\event_handler.log rem customer's name echo "name: %1" >> c:\windows\temp\event_handler.log rem customer's username in Plesk echo "login: %2" >> c:\windows\temp\event_handler.log echo "--------------" >> c:\windows\temp\event_handler.log
Plesk にログインして、「John Doe」という名前と「john_doe」というログイン名で顧客アカウントを作成すると、イベントハンドラが起動して以下のレコードが event_handler.log ファイルに追加されます。
-
(Plesk for Linux)
Fri Mar 16 15:57:25 NOVT 2007 uid=0(root) gid=0(root) groups=0(root) customer created name: John Doe login: john_doe
-
(Plesk for Windows)
Mon March 15 21:46:34 NOVT 2010 customer created name: John Doe login: john_doe
イベントハンドラを編集、削除する
現在アクティブなイベントハンドラのリストを表示するには、[ツールと設定] > [イベントマネージャ]に進みます。ここで、イベントハンドラの編集、削除もできます。
- イベントハンドラを編集するには、名前をクリックして、必要な変更を加え、[OK]をクリックします。
- イベントハンドラを削除するには、そのチェックボックスをオンにして[削除]をクリックします。