ybiC has asked for the wisdom of the Perl Monks concerning the following question:
I started with an example from Network Programming with Perl and a chunk from (code)) Cisco Pass Mass - IOS (deprecated by node 123464). Super Search turned up a thread where waitfor() is used, but it didn't help me understand how to apply the right syntax in my scriptlet.
Mind you, I don't even pretend to grok OOP. Can a OOP-literate monk help me to see the error of my ways?
P.S. I know the code is double-ugly, but my intent is just to figure out the "waitfor()" syntax. After that, I'll clean it up big-time.
cheers,
Don
striving for Perl Adept
(it's pronounced "why-bick")
#!/usr/bin/perl -w # setpassCat.pl # February 26-27, 2001 use strict; use Net::Telnet::Cisco; use vars qw($before $match); my $target = ''; my $oldpass = ''; my $olden = ''; my $newpass = ''; umask oct 177; my $cs = Net::Telnet::Cisco->new( host=>"$target", errmode=>'return', timeout=>'30', input_log=>'ciscoconf.log',) or die " Error connecting to $target\n"; $cs->login('',$oldpass) or die " Error logging in to $target. Bad pa +ssword?\n"; print " ", $cs -> last_prompt, "\n"; &PAUSE(); $cs->enable($olden) or die " Error getting $target privilaged mode.\n +"; print " ", $cs -> last_prompt, "\n"; &PAUSE(); my $telnet = $cs -> print('set pass') or die "Error giving \"set pass\ +" command.\n"; ($before,$match) = $telnet -> waitfor('Enter old password:') or die "E +rror getting \"Enter old password\" prompt\n"; print " ", $cs -> last_prompt, "\n"; &PAUSE(); my $output = $cs -> print("$oldpass") or die "Error giving existing ac +cess password.\n"; ($before,$match) = $telnet -> waitfor('Enter new password:') or die "E +rror getting \"Enter new password\" prompt\n"; print " ", $cs -> last_prompt, "\n"; &PAUSE(); $output = $cs -> print("$newpass") or die "Error giving new access pas +sword.\n"; ($before,$match) = $telnet -> waitfor('Retype new password:') or die " +Error getting \"Retype new password\" prompt\n"; print " ", $cs -> last_prompt, "\n"; &PAUSE(); $output = $cs -> print("$newpass") or die "Error confirming new access + password.\n"; ($before,$match) = $telnet -> waitfor('Password changed') or die "Erro +r getting \"Password changed\" confirmation.\n"; print " ", $cs -> last_prompt, "\n"; $cs->close; ###################################################################### +### sub PAUSE { print " <enter> to continue...\n"; my $continue = <STDIN>; } ###################################################################### +###
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Net::Telnet and waitfor()
by chipmunk (Parson) on Feb 28, 2001 at 03:34 UTC | |
by ybiC (Prior) on Feb 28, 2001 at 08:01 UTC | |
|
Re: Net::Telnet and waitfor()
by archon (Monk) on Feb 28, 2001 at 03:35 UTC |