Files
scripts/Perl Cisco konfigurieren/router.pl
2024-10-14 00:08:40 +02:00

88 lines
1.9 KiB
Perl

#!/bin/perl
use Net::Telnet::Cisco;
sub LOG ($);
open RTR, "<router_list.txt";
while (<RTR>) {
if ($_ =~ /^#/) {
print $_;
next;
}
chomp;
($ip,$user,$pass,$enable,$wait)=$_=~/^(.*),(.*),(.*),(.*),(.*)$/i;
$wait=10 if ($wait eq "");
# print "$ip,$user,$pass,$enable,$wait\n";
@routers=(@routers,[$ip,$user,$pass,$enable,$wait]);
}
close RTR;
my $session;
my @output;
my ($ss,$mm,$hh,$dd,$mon,$yy,$we,$doy,$st)=localtime;
$mon++;
$yy+=1900;
$dd = '0' . $dd if ($dd < 10);
$mon = '0' . $mon if ($mon < 10);
my $date=$yy . "-" . $mon . "-" . $dd;
my @commands;
open CMD, "<router_config.txt";
foreach (<CMD>) {
if ($_ =~ /^#/) {
print $_;
next;
}
chomp unless ($_ =~ /^\n$/);
@commands=(@commands,$_);
}
close CMD;
foreach my $router (@routers) {
print "\nVerbinde zu $$router[0]\n";
# LOG "Verbindungsversuch zu $$router[0]";
next unless ($session = Net::Telnet::Cisco->new(Host => "$$router[0]", Errmode=>'return'));
# LOG "Verbindung zu $$router[0] erfolgreich hergestellt";
if ($$router[1] eq '') {
print "sende Passwort\n";
$session->login(Password => "$$router[2]");
}
else {
print "sende user, pw\n";
$session->login(Name => "$$router[1]", Password => "$$router[2]");
}
print "enable\n";
$session->cmd("enable\n$$router[3]") if ($$router[3] ne "");
# LOG "$$router[0] !!! Sende Befehle";
foreach (@commands) {
print "$$router[0] $_\n";
@output = $session->cmd(String=>"$_", Timeout => 1);
}
# LOG "Ausgabe des Routers\n@output";
# LOG "Ende und Speichern\n-------------------------------------------";
$session->cmd("end");
$session->cmd("wr");
sleep ($$router[4]);
print "\n\n";
}
sub LOG {
open LOGG, ">>connect.log";
printf LOGG "$_[0]\n";
close LOGG;
}