通过PHP在远程机器上执行命令

给我的环境背景:

我有3台机器A,B&C

A = Web服务器,运行一个基本上充当B&C接口的PHP网站

B = Linux的Ubuntu机器,我有根访问,SSH和所有需要的善良,通过SSH客户端在机器上工作(我有这个服务器的.ppk私钥文件)

C =运行在Linux上的MySql数据库服务器

我可以成功地从C(Mysql)上的A(php)执行查询并返回结果。 但现在即时通讯尝试从B上执行的Linux命令

例如。

我有一个运行在B上的脚本,并希望从A(php)执行一个命令来显示脚本的状态。

在命令行中这样做很简单 – ./SomeScript状态

但是我想在服务器A托pipe的网站上显示这个脚本的状态。

即使只检查服务器A上的服务器B的正常运行时间

无论如何,这是可能的。 我似乎永远GOOGLE了,但我没有得到任何地方,我不太分阶段,如果连接是安全的或不是因为这是一个封闭的networking,没有外部访问此networking。

任何build议将不胜感激。

谢谢

Solutions Collecting From Web of "通过PHP在远程机器上执行命令"

在服务器A上通过PHP运行SSH命令到服务器B.

以下是如何在Linux中使用命令行运行ssh命令: http : //www.youtube.com/watch? NR =1& feature = fvwp& v=YLqqdQZHzsU

为了在Linux上使用PHP运行命令,使用exec()命令。

我希望这会让你开始寻找正确的方向。

看看这两个帖子来自动化密码提示

下面是非工作代码的一个简单例子,让你思考:

 <?php $server = "serverB.example.org"; //ip address will work too ie 192.168.254.254 just make sure this is your public ip address not private as is the example //specify your username $username = "root"; //select port to use for SSH $port = "22"; //command that will be run on server B $command = "uptime"; //form full command with ssh and command, you will need to use links above for auto authentication help $cmd_string = "ssh -p ".$port." ".$username."@".$server." ".$command; //this will run the above command on server A (localhost of the php file) exec($cmd_string, $output); //return the output to the browser //This will output the uptime for server B on page on server A echo '<pre>'; print_r($output); echo '</pre>'; ?> 

建议的流程是在服务器A上运行命令,以SSH方式连接到服务器B.