in reply to script input from (command-linetext file) list
But I'm kinda slow sometimes, and often ride the "short bus" to the Monastery ;^) So... I re-read ovid's excellent Before You Post ..., then condensed my script down to a relevant minimum, in hopes of some charitable Monk showing me how to insert the necessary control structure(s) properly.
A quick(?) recap for anyone who just tuned in... cisconconf.pl is the script, it uses Net::Telnet::Cisco to connect to a Cisco router or switch and do stuff. ciscoconf.log records the results of the script. And ciscoconf.in is to be a list of routers (one router name/ip addr per line) for the script to connect to. I also want to be able to call the script with a space-delimited list of routers, like so: ciscoconf.pl router1 router2 router3, included at the command-line which whould over-ride any existing .in file.
I half understand unless, <>, while, or push individually but not how to actually plug them into my code.
cheers,
ybiC
#!/usr/bin/perl -w # ciscoconf.pl use strict; use Net::Telnet::Cisco; my $pass = ''; # Cisco vty password my $timeout = '60'; # seconds of no response ti +ll Net::Telnet::Cisco gives up waiting my $infile = "/dir/subdir/ciscoconf.in" # one-per-line text-file lis +ting of Cisco devices to connect to my $logfile = "/dir/subdir/ciscoconf.log" # logfile of script results print "starting Cisco device sessions\n" # print to console, not log open (IN, "$infile") or die "Error opening $infile: $!\n" open (LOG,">$logfile") or die "Error opening $logfile: $!\n" # repeat these actions for each Cisco device at command prompt (or els +e in ciscoconf.in) # control struct(s) begin here? print LOG "####################################################### +######\n" my $cs=Net::Telnet::Cisco->new(Host=>IN, timeout=>$timeout,); $cs->login('',$pass); # vty login $cs->errmode(sub{print LOG @_, "\n"}); # error handler: print $cs- +>errmsg, "\n" print $cs->last_prompt, "\n" # print Cisco device prompt +to console print LOG $cs->last_prompt, "\n" # print Cisco device prompt +to log $cs->close; # exit Cisco session print LOG "####################################################### +######\n" # control struct(s) end here? # end actions for each Cisco device close (IN) or die "Error closng $infile: $!\n" close (LOG) or die "Error closing $logfile: $!\n" print "finished Cisco device sessions\n" # print to console, not log # END
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
RE: Re: ...input from(command-line ior/i text file)list (Question Clarified)
by ar0n (Priest) on Sep 17, 2000 at 16:00 UTC | |
by ybiC (Prior) on Sep 17, 2000 at 16:21 UTC |