我正在使用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