我有 php 脚本,我在其中使用 expect 来在远程机器上自动登录和执行命令。这是我的 php 代码的样子,
<?php
ini_set("expect.loguser", "Off");
$stream = fopen("expect://ssh root@10.3.2.0", "r");
$cases = array (
array (0 => "*(yes/no)?", 1 => YESNO),
array (0 => "*d: ", 1 => PASSWORD),
array (0 => "*$ ", 1 => SHELL, EXP_EXACT)
);
switch (expect_expectl ($stream, $cases)) {
case YESNO:
fwrite ($stream, "yes\n");
break;
case PASSWORD:
fwrite ($stream, "myrootpassword\n");
break;
case SHELL:
fwrite ($stream, "top -n 1\n");
break;
default:
die ("Error was occurred while connecting to the remote host!\n");
}
while ($line = fgets($stream)) {
print $line;
}
fclose ($stream);
?>
而且我知道我也为php安装了expect模块。
我也在我的 Ubuntu 机器上安装了 expect。
但我不知道为什么这是脚本不起作用。我按照http://www.php.net/manual/en/book.expect.php和http://php.net/manual/en/expect.examples-usage.php创建了我的 php 脚本文件。请建议我,因为我是 PHP 的初学者,我需要做哪些修改才能在 php 中工作。
谢谢。