|
| 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!)
| |
|
|