/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Telnet ???
Fra : Brizze


Dato : 02-04-04 10:54

Hej alle,

Jeg sidder og prøver at lave et script der bla. Skal kunne telnette ind til
en cisco router.

Mit problem er at når jeg har telnettet til routeren, beder den om password.
Det skulle den så få fra scriptet men det kan jeg ikke rigtig få den til.

Jeg ved ikke hvordan jeg får mit script til at vente på at routeren beder om
password.

Er det fordi, jeg forlader scriptet når jeg laver telnet ?

Eller skal jeg bare finde den rigtige kommando ?

Her er den del af scriptet der virker :

while [ -z "$router" ]

do

print -n " skriv routernavn, eller ip "

read router

done

telnet $router

----her ved jeg så ikke hvad jeg skal skrive----

svaret fra routeren er så :

User Access Verification

Password:

Jeg håber nogen kan give mig et svar.

På forhånd tak Brian !



 
 
Klaus Ellegaard (02-04-2004)
Kommentar
Fra : Klaus Ellegaard


Dato : 02-04-04 13:23

"Brizze" <brizze@get2net.dk> writes:

> telnet $router

>----her ved jeg så ikke hvad jeg skal skrive----

Brug expect til resten. Det fungerer efter konceptet:

1. Vent på "Password: "
2. Skriv "tuborg"
3. Vent på "> "
4. Skriv "enable"
5. Vent på....

Mvh.
   Klaus.

Thomas Rasmussen (02-04-2004)
Kommentar
Fra : Thomas Rasmussen


Dato : 02-04-04 13:28

"Brizze" <brizze@get2net.dk> writes:

> Hej alle,
>
> Jeg sidder og prøver at lave et script der bla. Skal kunne telnette ind til
> en cisco router.
>
> Mit problem er at når jeg har telnettet til routeren, beder den om password.
> Det skulle den så få fra scriptet men det kan jeg ikke rigtig få den til.
>
> Jeg ved ikke hvordan jeg får mit script til at vente på at routeren beder om
> password.

Det ser ud til at du gør det i std. shell script, tag et kig på expect
istedet, det er meget smart til at løse sådanne problemer.

Basalt script til at logge ind på en host via telnet:

#!/usr/bin/env expect
set prompt "(%|#|\\$) $"      ;# default prompt
catch {set prompt $env(EXPECT_PROMPT)}
set user "username"
set passwd "secret"
set host "mithostnavn"

eval spawn telnet $host
set timeout 5
expect "Login:"
send "$user\r"
expect "Password:"
send "$passwd\r"
send "exit\r"


Det telnetter til "mithostnavn" og venter på respons "Login:" og når
den kommer, så sender den $user\r (\r for return), venter på Password:
prompten og sender passwordet. Hvis du så vil lave nogle kommandoer så
laver du bare

send "kommandotext\r"

Hvis du vil vente på et output inden du fortsætter, så laver du en

expect "outputtext"

Du kan også laver en

interact

Som overdrager kontrollen til dig og du kan så give dit eget input til
session'en.

Der findes en masse fin dokumentation til expect, det kan virkelig
lave nogle fine automatiseringsting, der findes også noget
auto-expect, som kan recorde hvad du laver og skrive koden for
dig. Smart hvis man lige vil se hvordan man gør (har dog ikke brugt
det!)

Held og lykke

Mvh
Thomas

--
/"\ | Human Knowledge Belongs To The World
\ / | -- Milo Hoffman in "AntiTrust"
x |
/ \ <-- (ASCII Ribbon Campain against html emails and postings!)

Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408836
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste