Php 通过浏览器上的按钮向Linux服务器发送特殊代码

Php 通过浏览器上的按钮向Linux服务器发送特殊代码,php,linux,http,web,Php,Linux,Http,Web,我们目前正在通过HTTP协议向数据库发送Linux命令,并通过telnet协议(连接)从Web服务器向远程Linux服务器发送命令。对远程服务器的请求响应显示在浏览器的输出窗口中 我们已经完成了上述任务,但我们仍然希望在浏览器(gui)上有两个按钮:“中止”和“重新启动”,它们将向浏览器发送请求,然后发送到远程Linux服务器,并在浏览器的输出窗口中显示响应 目前,我们有以下代码片段: <input type="button" name="Abort" onclick="send_cmd(

我们目前正在通过HTTP协议向数据库发送Linux命令,并通过telnet协议(连接)从Web服务器向远程Linux服务器发送命令。对远程服务器的请求响应显示在浏览器的输出窗口中

我们已经完成了上述任务,但我们仍然希望在浏览器(gui)上有两个按钮:“中止”和“重新启动”,它们将向浏览器发送请求,然后发送到远程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);
}

函数send_cmd(frm、kCmd)
{
xmlhttp=新的XMLHttpRequest();
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
log(“远程:+xmlhttp.responseText”);
if(xmlhttp.responseText.indexOf(“权限被拒绝”)>-1){
警报(“权限被拒绝。请向管理员询问下一个可用的时间段。”);
}
}
}
if(kCmd){
cmd=”“;//暂时为空
}
否则{
cmd=frm.command.value;
}
open(“GET”、“cmd_request.php?q=“+cmd,true”);
xmlhttp.send();
setTimeout(function(){window.location.href=“cmd.php”},1000);
}

如果您有任何关于如何实现这一目标的想法,我将不胜感激。提前感谢。

您可以在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);
?>


文件:

Hi Chengpohi,非常感谢您对我的问题的回答。我们将审查您的想法和附件来源。我们会让您知道它是否有效。目前,我们在浏览器上有以下功能,可以将Linux命令发送到数据库,并在输出窗口上获得即时响应。任务是向按钮元素添加相同的功能,如“Ctr+C”或“Abort”等,以实现相同的结果。