#!/usr/bin/perl -w # ciscoconf.pl use strict; use Net::Telnet::Cisco; my $pass = ''; # Cisco vty password my $timeout = '60'; # seconds of no response till Net::Telnet::Cisco gives up waiting my $infile = "/dir/subdir/ciscoconf.in"; # one-per-line text-file listing 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 (LOG,">$logfile") or die "Error opening $logfile: $!\n"; unless (@ARGV) { @ARGV = $infile; chomp(@ARGV = <>); } # repeat these actions for each Cisco device at command prompt (or else in ciscoconf.in) for my $dev (@ARGV) { print LOG "#############################################################\n"; my $cs = Net::Telnet::Cisco->new(Host=>$dev, 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"; } close (LOG) or die "Error closing $logfile: $!\n"; print "Finished Cisco device sessions\n"; # print to console, not log # END