簡體   English   中英

從遠程服務器PHP執行bash腳本

[英]Executing a bash script from a remote server PHP

我正在嘗試從遠程服務器運行bash腳本,並將服務器的結果輸出回我的html / php頁面,以便用戶可以看到輸出。 有誰知道最好的方法嗎?

這是我到目前為止的內容:

<?php

include 'res/php/functions.php';
$gateway = 'remoteserver';
$user = 'user';
$pass = 'pass';

function cleanInput($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}

//when the submit button is clicked
if ( $_SERVER['REQUEST_METHOD'] == 'POST'){
 //$gateway = cleanInput($_POST['gateway']);

  //create the ssh connection
if ($connection = @ssh2_connect($gateway, 22)) {
       ssh2_auth_password($connection, $user, $pass);

       if(isset($_POST['option']) && $_POST['option'] == 1) { 
            $output = 
             shell_exec("/tmp/testscripts/up.sh");
       }

       if(isset($_POST['option'])  && $_POST['option'] == 2) { 
            $output = 
             shell_exec("/tmp/testscripts/down.sh");
       }
       //remove  this  if you want to see $output in this file

       echo "<pre>$output</pre>";
 }

} 
?>

我找到了答案。 請參閱以下內容。

           $stream = ssh2_exec($connection, "/tmp/moslehpour/testscripts/up.sh");
                stream_set_blocking($stream, true);
                $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
                echo stream_get_contents($stream_out);

           }

           if(isset($_POST['option'])  && $_POST['option'] == 2) { 
                $stream = ssh2_exec($connection, "/tmp/moslehpour/testscripts/down.sh");
                stream_set_blocking($stream, true);
                $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
                echo stream_get_contents($stream_out);
           }

暫無
暫無

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

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