簡體   English   中英

如何使用PHP在遠程Linux機器上執行Shell腳本

[英]How to execute a shell script on a remote linux machine using php

我在/ home /目錄中IP:192.168.1.1的遠程ubuntu機器上有一個shell腳本test.sh,並且我在IP:192.168.1.2的ubuntu機器上安裝了我的apache2和php。

我需要從Web服務器上的遠程節點上執行Shell腳本,有什么辦法可以使用php腳本來做到這一點?

我認為您可以執行的快速方法(但不是安全方法)是在另一台服務器上設置Web服務器,然后在其中創建PHP腳本以調用bash腳本。 因此,在服務器192.168.1.1上,您將腳本稱為php。

但我認為最好的方法是在腳本中調用該請求,將請求放入某個隊列(可能在數據庫中),在另一台服務器上創建Python或PHP腳本以使用此隊列並運行bash腳本。 此Python / PHP腳本將通過Cron執行。 因此,以這種方式,您將無法像第一個解決方案那樣直接調用腳本。 這是安全的方法。

我最近發布了一個項目,該項目允許PHP根據需要通過SSH獲取並與真實的Bash shell進行交互。 在這里獲取它: https : //github.com/merlinthemagic/MTS

我可以建議觸發單個命令而不是腳本。 這樣,您就可以處理返回值,而不必在bash中構建異常處理。

下載后,您只需使用以下代碼:

    //get a shell
    $shell = \MTS\Factories::getDevices()->getRemoteHost('192.168.1.1')->getShellBySsh('username', 'secretPassword');

    //trigger your script
    $return1  = $shell->exeCmd('/home/test.sh');

    echo $return1;//the return from your script.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM