Plesk 中的某些操作,例如:

  • 創建客戶帳戶
  • 移除 IP 位址
  • 更新域名的主機設定及其它

被Plesk稱為 事件 。對於每個事件,都可以創建一個或多個事件處理常式在事件發生時執行預設的命令。

事件處理常式對事件每次發生時要執行某項操作或某組操作時很有幫助。例如,您可以創建一個事件處理常式可在每次創建訂閱時觸發,並將其配置可自動創建郵箱、向外部服務發送請求,等等。

添加事件處理常式

  1. 進入 工具與設定 > 事件管理器

  2. 點按  添加事件處理常式

  3. 從 「事件」 列表中選擇將要觸發處理常式的事件。

  4. 在 「優先順序」 下,設定處理常式執行優先順序,要麼從列表中選擇要麼在欄位中自行鍵入數位。如果一個事件分配了多個處理常式設定優先順序就會變得很重要。這樣,就會根據優先順序降冪觸發處理常式(事件會首先觸發最高優先順序的處理常式,然後觸發第二優先順序的處理常式,以此類推)。

  5. 從」用戶」 列表選擇將要代表其執行處理常式的系統使用者。

    備註: 伺服器管理員可以創建代表 root 用戶在伺服器上運行的事件處理常式。如果您要限制使用 root 帳戶,請創建一個名為  root.event_handler.lock  的空文件(在 /usr/local/psa/var/ 中創建)。

  6. 不管何時在 「命令」 欄位中觸發事件處理常式都需要將路徑鍵入 shell 腳本或含有要執行的命令的 .bat 檔(例如, /usr/local/psa/bin/script.shC:\Windows\Temp\script.bat )中。

    備註: 確保給您的腳本執行許可權。您可以運行以下命令來實現: chmod 755 <script.sh>

  7. 點按  確定

傳遞事件參數

不管何時觸發一個事件處理常式,都會傳遞與該事件相關的某個資料(」事件參數」) ,具體傳遞什麼資料由相應的事件處理常式決定。例如,」已創建域名」 事件處理常式會傳遞以下參數:

  • 新創建域名的名稱。
  • 新創建域名的GUID。
  • 擁有新創建域名的客戶帳戶的GUID。

每個參數都以可在 shell 腳本或 .bat 檔中使用的環境變數的形式進行傳遞,如下:

Plesk for Linux

在您的 shell 腳本中使用預留位置 ${ENVIRONMENT_VARIABLE_NAME} (例如 「${NEW_DOMAIN_NAME}」)。觸發事件處理常式時,預留位置將被事件相應的值替代。

Plesk for Windows

在 bat 檔中使用預留位置 %N (例如,」%1」),在事件處理常式設定中於命令末尾處的相應位置附加所需環境變數的名稱。在下面的示例中

image 78436

預留位置 「%1」 將被 「NEW_DOMAIN_NAME」 環境變數的值替換,而 「%2」 將被 「NEW_DOMAIN_GUID」 的值替換。如果您在 .bat 檔中使用 「%3」,將不會被替代,因為在命令後只指定了兩個環境變數名稱。

您可以在 此處 看到事件參數的完整列表和每個事件處理常式相關聯的環境變數名稱。

下面有‘已創建客戶帳戶’ 事件的兩個腳本示例作為參考:

  • (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
    

編輯和移除事件處理常式

若要查看當前的活動事件處理常式列表,請進入 工具與設定 > 事件管理器 。您還可以在此處編輯並移除事件處理常式:

  • 若要編輯一個事件處理常式,請點按此名稱,進行所需更改,然後點按 確定
  • 若要移除一個事件處理常式,請勾選相應的核取方塊並點按 移除