Hej "Steffen Moeller" <not4u@somewhere.in.gl>
>Jeg fulgte en meget aktiv tråd i midten af år 2000, hvor der var en der
>havde et problem med ca. 100 routere, som skulle opdateres via et automatisk
>perl telnet script.
Lyder bekendt.
>Der var en venlig sjæl, som postede et lille quick'n'dirty hack, der brugte
>to filer: En med alle hostnavnene der skulle opdateres, og en anden fil med
>de kommandoer, som skulle udføres på routerne.
# telnet.pl - Cisco 7xx config
# Lars Kim Lund - 30.05.2000
use Net::Telnet ();
$cmd="cmd.txt"; # Cisco 7xx kommandoer
$hosts="hosts.txt"; # Hosts (routere)
if (open(cmd,$cmd) && open(hosts,$hosts) or die "Filfejl, $!\n") {
chomp (@cmd=<cmd>);
chomp (@hosts=<hosts>);
close cmd;
close hosts;
}
print "Indtast password: ";
$psw=<stdin>;
$t=new Net::Telnet;
foreach $host (@hosts) {
print "Tilslutter $host .. ";
eval{$t->open($host)};
if (!$@) {
print "Validerer .. ";
$t->waitfor('/enter password:/i');
$t->print("$psw\n\n");
print "Sender kommandoer .. ";
foreach $cmd (@cmd) {
$t->waitfor('/> $/');
$t->print("$cmd\n");
}
print "OK!\n";
}
else {
print "Host svarer ikke!\n";
}
}
Tak til relevante personer, ingen nævnt alle glemt.
Det er ikke ret elegant, men det fungerer. Det virker kun out-of-box
til Cisco 700 series routere, men med lidt ændring kan det godt komme
til at virke med andre routere. Du skal blot ændre på hvad den skal
kigge efter i retursvaret.
perldoc Net::Telnet
>Hvis der er en som skulle ligge inde med det script - eller et tilsvarende,
>og som vil poste det, så ville Jeg blive ovenud lykkelig, - Jeg har nu selv
>problemet med en masse routere, som skal have samme behandling
En anden mulighed er at køre det via SNMP.
>ps. Ja - Jeg har brugt et par timer med dejanews.com (Google)
Jeg bryger No-Archive, så hvis det er mit indlæg du tænkte på, så er
det naturligt du ikke finder det på deja-google.
--
Lars Kim Lund
http://www.net-faq.dk/