如何使用php在远程linux机器上执行shell脚本


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

我在/home/目录中的远程ubuntu机器上有一个shell脚本test.sh,IP为192.168.1.1,我的apache2和php安装在IP为192.168.1.2的ubuntu计算机中。

我需要在Web服务器机器的远程节点上执行shell脚本,有什么方法可以使用php脚本来执行吗?

我认为最快的方法(但不是安全的方法)是在另一台服务器上设置一个Web服务器,并在那里创建一个PHP脚本来调用bash脚本。因此,在服务器192.168.1.1上,您可以调用脚本php。

但我认为最好的方法是,当你想调用this is脚本时,把请求放在某个队列中(可能在数据库上),在另一台服务器上创建一个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.