我试图通过SSH(使用Net_SSH2类)以PHP代码连接到服务器,并在远程服务器上运行许多命令。

远程服务器输出bash: runmqsc: command not found

奇怪的是,当我使用MobaXterm SSH连接到该服务器时,可以在该服务器上找到完全相同的命令并可以正常工作。

我验证了代码使用正确的主机名,用户名和密码进行连接。

有任何想法吗?

这就是我在PHP中所做的事情:

$this->ssh = new Net_SSH2("myhost");
$this->ssh->login("myuser", "mypass");

$command = "runmqsc MyQmgr \n DEFINE QLOCAL(MY_QUEUE) \n end \n";
$this->ssh->exec($command);

最佳答案

您可能需要执行以下操作:

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->read('username@username:~$');
$ssh->write("runmqsc MyQmgr\n"); // note the "\n"
echo $ssh->read('username@username:~$'); // or whatever the prompt is - does runmqsc have it's own prompt?
$ssh->write("DEFINE QLOCAL(MY_QUEUE)\n");
?>


...等等...

10-08 08:09
查看更多