我需要一个 telnet 到 eagle STP 设备并在那里运行命令的脚本。
当我尝试从命令提示符远程登录 Eagle STP 设备时,
我得到以下输出:
[root@localhost tmp]# telnet hostname port
Trying hostname...
Connected to hostname hostname).
Escape character is '^]'.
我没有得到任何提示来匹配 perl 脚本。我们需要按 control+a 才能得到提示。如果我们按 control+a,它将给出以下输出
[root@localhost tmp]# telnet hostname port
Trying...
Connected to hostname.
Escape character is '^]'.
>
然后我们需要在这个提示符下输入 login:uid
> login:uid=dumps
然后提示输入密码
Enter password : password
然后我们需要再次按 control+a 来执行命令。
> rtrv-dstn.
我在这里感到震惊,我无法在 telnet 命令之后通过 control+a 命令。
我用以下方式编写了脚本。但它不起作用。谁能帮我 !!!!
#!/usr/bin/perl
use Net::Telnet;
my $host='hostname';
my $port='port';
my $telnet = new Net::Telnet(Host => $host, Port => $port, Timeout => 20)
or die "connect failed: $!";
$telnet->open($host);
print"Hi iii";
$telnet->waitfor('+$/i');');
print"Hello";
$telnet->print("^]");
$telnet->waitfor('/>$/i');
$telnet->print("login:uid=username");
$telnet->waitfor('/Enter Password :\s+$/i');
$telnet->print("password");
$telnet->waitfor('/>$/i');
@res1=$telnet->print("rtrv-dstn");
print"@res1";
Exit;