在PHP方面,我仍然相当环保。不太确定问题出在哪里。我使用的是一个非常简单的SSH2类(https://www.phpclasses.org/browse/file/34450.html),它可以很好地满足我的需求,或者直到现在为止。
这是我设置的课程。我将ssh连接放入构造函数中,并尝试在其余的类函数中使用$ this-> ssh。
include ("/var/www/html/class/ssh2_class.php"); ##https://www.phpclasses.org/browse/file/34450.html
class crontab {
function __construct($host,$params) {
$this->host = $host;
$this->pubkey = $params['pubkey'];
$this->privkey = $params['privkey'];
$this->usr = $params['user'];
$this->port = $params['port'];
$this->secret = $params['secret'];
$this->ssh = new SSH2($this->host)
or die ("Unable to connect to ". $this->host ."!");
$this->ssh->auth($this->usr, $this->pubkey, $this->privkey, $this->secret)
or die ("Unable to authenticate to ". $this->host ."!");
}
function show($sudo) {
if ($sudo) { $sudo = "sudo"; } else { $sudo = ""; }
$cmd = $sudo."$sudo crontab -l";
$this->ssh->exec($cmd);
return ($this->ssh->output);
}
我遇到的问题是上面 show 函数的返回行。 $ this-> ssh-> exec($ cmd); 无问题地运行;我只是通过触摸文件来测试它。
PHP Notice: Undefined property: SSH2::$output in /home/mackay_c/scripts/deploy/deploy.class.php on line 26
我在网上搜索过,但为什么会发生这种情况我感到有些不知所措。 SSH2类中的'output'函数是:
function output() {
return stream_get_contents($this->stream);
任何帮助都将不胜感激。
答案 0 :(得分:1)
return ($this->ssh->output())