イベントハンドラを追加する(Linux)
例えば、「顧客アカウントの作成」イベントのイベントハンドラを作成するとします。このハンドラは、環境変数から Plesk での顧客名とユーザ名を受け取ります。説明を簡単にするために、以下のような test-handler.sh
と呼ばれるシェルスクリプトを使用します。
#!/bin/bash
echo "--------------" >> /tmp/event_handler.log
/bin/date >> /tmp/event_handler.log # イベント日時の情報
/usr/bin/id >> /tmp/event_handler.log # 実行されたスクリプトに関するユーザ情報(制御のため)
echo "customer created" >> /tmp/event_handler.log # 作成された顧客アカウントに関する情報
echo "name: ${NEW_CONTACT_NAME}" >> /tmp/event_handler.log # 顧客の名前
echo "login: ${NEW_LOGIN_NAME}" >> /tmp/event_handler.log # Plesk での顧客のユーザ名
echo "--------------" >> /tmp/event_handler.log
このスクリプトはいくつかの情報をファイルに出力します。これを利用して、実行を制御することができます(スクリプトはバックグラウンドモードで実行されるため、stdout/stderr に情報を出力することはできません)。
注: shell スクリプトファイルを使用してイベントを処理することを推奨します。システムコマンドを直接割り当てることもできますが、機能しない可能性があります。例えば、出力リダイレクト演算子 < または > の含まれるコマンドは機能しません。
例えば、使用するスクリプトがディレクトリ /plesk_installation_directory/bin
にあると仮定します。コントロールパネル経由でイベントハンドラを作成し、このスクリプトを登録します。
- [ツールと設定]>[イベントマネージャ]の順に選択します。
- [イベントハンドラを追加]をクリックします。
- [イベント]メニューで、ハンドラを割り当てるイベントを選択します。
- ハンドラの実行の優先順位を選択するか、カスタム値を指定します。これを行うには、[優先度]メニューで[カスタム]を選択して値を入力します。
複数のハンドラを 1 つのイベントに割り当てる場合、優先度を変更して(値を高くすると優先度も高くなる)ハンドラの実行シーケンスを指定できます。
- ハンドラを実行するシステムユーザを選択します(例えば、「root」ユーザ)。
-
[コマンド]入力フィールドに、選択したイベントで実行するコマンドラインを指定します。この例では
/usr/local/psa/bin/test-handler.sh
です。 - [OK]をクリックします。
注: スクリプトでは、変数 $NEW_CONTACT_NAME および $NEW_LOGIN_NAME を指定しました。ハンドラの実行中、これらの変数はそれぞれ、作成されたユーザアカウントの名前とユーザ名に置き換えられます。使用可能な変数は、「付録 C:イベントハンドラが受け渡すイベントパラメータ」のリストを参照してください。
Plesk にログインし、新規顧客アカウントを作成するときに、[担当者名]フィールドに「Some Customer」、[ログイン名]フィールドに「some_customer」という値を指定すると、ハンドラが呼び出され、以下のレコードが /tmp/event_handler.log
に追加されます。
Fri Mar 16 15:57:25 NOVT 2007
uid=0(root) gid=0(root) groups=0(root)
customer created
name: Some Customer
login: some_customer
1 つ以上のハンドラを指定する場合は、他のハンドラについても上記のアクションを繰り返してください。