2015-04-18 40 views
1

我們目前正在通過HTTP協議發送到數據庫的Linux命令,並且從Web服務器通過telnet協議將連接命令發送到遠程Linux服務器(連接)。該請求對遠程服務器的響應顯示在瀏覽器的輸出窗口中。通過瀏覽器上的按鈕發送特殊代碼到Linux服務器

我們已經完成了上述任務,但我們仍然希望在瀏覽器(gui)上有兩個按鈕:'Abort'和'Reboot',它們會向瀏覽器發送請求,然後發送到遠程Linux服務器,並在瀏覽器的輸出窗口中顯示響應。

目前,我們有下面的代碼片段:

<input type="button" name="Abort" onclick="send_cmd(this.form, true)" /> 
<input type="button" name="Reboot" onclick="send_cmd(this.form, true)" /> 



function send_cmd(frm, kCmd) 
{ 
    xmlhttp=new XMLHttpRequest(); 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      console.log("remote:"+xmlhttp.responseText); 
      if(xmlhttp.responseText.indexOf("Permission denied") > -1) { 
       alert("Permission denied. Please ask administrator for next available time slots."); 
      } 
     } 
    } 

    if(kCmd){ 
     cmd= ""; //empty for now 
    } 
    else{ 
     cmd=frm.command.value; 
    } 
    xmlhttp.open("GET","cmd_request.php?q="+cmd,true); 
    xmlhttp.send(); 

    setTimeout(function(){window.location.href="cmd.php"}, 1000); 
} 

會明白如何使這項工作的任何想法。提前致謝。

回答

0

您可以在Web服務中添加一個後臺服務,而這種服務可以執行你的linux命令,返回執行結果或其他東西,如:

<?php 
$ret = exec("su -c /path/to/command -s /bin/bash -l otheruser", $out, $err); 
var_dump($ret); 
var_dump($out); 
var_dump($err); 
?> 

文件:http://us3.php.net/manual/en/function.exec.php

+0

Chengpohi嗨,非常感謝你回答我的問題。我們會審查你的想法和附加的來源。我們會讓你知道它是否有效。 – KKUser

+0

目前,我們在瀏覽器上有以下幾項,我們可以將Linux命令發送到數據庫,並在輸出窗口中獲得即時響應。其任務是爲按鈕元素添加相同的功能,例如「Ctr + C」或「Abort」等,以實現相同的結果。 – KKUser

相關問題