我正在运行以下简单的telnet脚本,它只是登录到机器并退出。
同一脚本在一个Linux服务器上运行良好(通过1000次迭代),但在另一个Linux服务器(例如200次尝试后失败)失败(一致)。
在失败的情况下,失败所需的迭代次数是不同的,但是失败是持久的。
#!/usr/bin/perl
use Net::Telnet;
my $loop = 0;
my $dumpfile = "dump.log";
my $inputfile = "input.log";
for ($loop =1; $loop <=1000; $loop++) {
我开发了这个expect脚本,TELNET_TEST.expect来测试远程计算机上的TELNET连接。
这个脚本应该通过目标机器上的telnet连接,等待登录提示,发送密码,然后退出。
这个脚本确实有效,在示例1中,您可以看到脚本成功地通过telnet登录,然后退出,但是有非常混乱的事情发生了,(对我来说)。
为什么我会得到一个退出状态1?我想我应该退出0级.
请让我知道为什么我要退出状态1?另外,为了获得我预期的退出代码,我需要修改我的脚本吗?
我的预期脚本:
more TELNET_TEST.expect
#!/usr/bin/expect --
set LO
我试图使用telnet通过Perl脚本导出命令,下面的脚本似乎能够成功登录,但无法执行命令。在执行命令之前,我无法找到等待提示符>的正确正则表达式。
以下是通过telnet登录正常化后的结果的图像:
#!/usr/bin/perl
use strict;
use warnings;
use Net::Telnet;
my $remote_host = 'myrouter';
my $telnet = new Net::Telnet (Timeout=>10 ,Input_log => "received_data.txt" );
这个脚本的输出是包装的,这是我不想要的。
use strict;
use Net::Telnet;
system("mode 500,6000");
print "passwd: ";
my $passwd=<>;
chomp($passwd);
my $telnet = Net::Telnet->new(Host=>'linux63.blahblah.edu',Prompt=>'/l+inux63> $/');
$telnet->waitfor('/login/');
$