/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Script til automatisk telnet
Fra : Steffen Moeller


Dato : 09-07-01 23:58

Hej Allesammen,

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.

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.

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

Med venlig hilsen - Og på forhånd tak.

Steffen.

ps. Ja - Jeg har brugt et par timer med dejanews.com (Google)



 
 
Lars Kim Lund (11-07-2001)
Kommentar
Fra : Lars Kim Lund


Dato : 11-07-01 06:49

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/

Steffen Moeller (11-07-2001)
Kommentar
Fra : Steffen Moeller


Dato : 11-07-01 12:07

Hejsa,

On Wed, 11 Jul 2001 07:49:05 +0200, Lars Kim Lund <larskim@mail.com>
wrote:

># 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)
>
>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.
>
>En anden mulighed er at køre det via SNMP.

Det var lige præcis dette script, som Jeg Erindrede at have set i
denne gruppe.

Du har naturligvis ret når du skriver at det er muligt at benytte SNMP
- dette er også mit foretrukne valg, men i mit tilfælde skal Jeg ind
og rette på routere, som spænder lige fra cisco 800 serien, henover
AS5200 til cisco 7200 - så Jeg har fravalgt den mulighed af to
årsager. Med alle de forskellige routerconfigurationer og mibs bliver
det nemt uoverskueligt for mig, og den vigtigeste: Jeg er blevet helt
vild med regexp, så det ville være sjovere for mig at lave en
tilføjelse til det script, som du postede her i gruppen

Jeg takker mange gange for scriptet.

Med venlig hilsen

Steffen Møller

Lars Kim Lund (11-07-2001)
Kommentar
Fra : Lars Kim Lund


Dato : 11-07-01 15:00

Hej Steffen Moeller <stm1@greennet.gl>

>Jeg takker mange gange for scriptet.

Ja, det var da så lidt. Du må gerne poste det færdige script her,
måske var der andre (f.eks. mig) der kunne bruge det.

--
Lars Kim Lund
http://www.net-faq.dk/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste