1

我正在尝试使用 Perl 脚本自动执行一系列步骤。在这我需要连接到服务器(我通过打开手动完成putty.exe),登录到它然后执行一些命令。

我尝试使用NET::SSH::Perl但命令没有被执行(我在这里没有收到任何错误消息)。有没有其他方法可以修复它并继续进行,还是使用 Perl 无法做到这一点?

$host= "mhadli";
$user= "rshukla";
$pass= "******";
$cmd = "ll";
use Net::SSH::Perl;
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user, $pass);
my($stdout, $stderr, $exit) = $ssh->cmd($cmd);

有什么建议么?

4

3 回答 3

0

值得注意的是,如果您在可以访问 shell 的机器上工作……您可以使用非常简单的 `` 运算符在 perl 中运行 shell 命令:

`ssh 08.736.fak.eip -l mylogin/pwd`

这可能足以登录到机器 - 然后您可以继续在脚本的其余部分执行您需要执行的任何 perl。

我也建议添加

use strict;
use warnings;

在脚本之上。

于 2013-01-09T16:13:01.487 回答
0

这听起来像是expect(为/由伟大的语言创建tcl)的工作。它的创建正是考虑到了这种用法。您可以从 perl 调用期望脚本。

于 2013-01-09T12:28:40.830 回答
0

使用Net::SSH2或尚未成熟但更易于使用的Net::SSH::Any代替旧的、无人维护且非常难以安装的 Net::SSH::Perl !

于 2013-01-10T16:32:25.983 回答