命令在CMD提示符下工作,但在通过SSH2与phpseclib

时间:2017-05-05 00:05:57

标签: php python terminal phpseclib

我正在使用phpseclib,其中包含以下命令:

composer require phpseclib/phpseclib ~2.0

目标计算机(接收方)正在运行Windows Server 2012.

在目标计算机上,我可以在cmd提示符下运行以下命令,它运行正常:

c:/maestro/__main__.py --process-report hourly_visitor -test

但是,如果我通过SSH2向机器发送相同的命令,我会收到一个奇怪的错误,即__main__.py: error: unrecognized arguments: -testh

注意 -testh中的 h 。那不是发送命令。此外,额外的字母似乎改变了,在之前的日志条目中,我看到:  __main__.py: error: unrecognized arguments: -testt最后加上 t ,但总是添加一个字母。

我不明白,这里到底发生了什么?

这是我的php函数:

public function triggerReport($config,$command)
{
    $host = array_get($config,'host');
    $username = array_get($config,'username');
    $password = array_get($config,'password');

    $ssh = new SSH2($host);
    if (!$ssh->login($username, $password)) {
        Log::error('Login Failed while attempting to trigger report with command: '.$command);
    }
    else{
        $output = $ssh->exec($command);
        Log::info('Output from running report with command: '.$command);
        Log::info($output);
    }
}

第一个日志输出

  

使用命令运行报告的输出:C:\ Python27 \ python.exe c:/maestro/__main__.py --process-report hourly_visitor -test

第二次日志输出:

  

usage: __main__.py [-h] --process-report [REPORT_TRIGGER] [-test] [--to TO [TO ...]] __main__.py: error: unrecognized arguments: -testh

0 个答案:

没有答案