Toon posts:

Script dat met telnet inlogt en commando geeft

Pagina: 1
Acties:

Verwijderd

Topicstarter
Omdat de ADSL verbinding vrijwel ieder weekend uitvalt terwijl ik dan niet fysiek toegang tot de computer in kwestie heb moet ik die computer instellen dat hij de router reboot als dat nodig is. Daarna doet de verbinding het namelijk weer.

Daarvoor heb ik een shellscriptje nodig dat een telnetverbdinding met de router maakt (tot hier toe lukt het mij ook nog wel) maar dan moet ie via telnet automatisch het password doorsturen en daarna het commando "sys reboot" aan de router geven.

Hoe doe ik dit? In de telnet manpage staat het niet.

Misschien zoiets?:

telnet [IP router] < macrobestandje

Maar wat moet er dan in het macrobestandje staan. Gewoon password \n sys reboot \n werkt niet.

De computer in kwestie is een FreeBSD doos (al zal het met linux precies hetzelfde gaan denk ik) en de router is een Vigor 2200E.

Verwijderd

techsupport van vigor raadplegen / firmware updaten of anders je verbinding eens door laten meten?

  • Zwelgje
  • Registratie: November 2000
  • Laatst online: 20-01 19:37
kun je niet gewoon in je vorige topic verder gaan :?

[topic=512000]

A wise man's life is based around fuck you


  • MadEgg
  • Registratie: Februari 2002
  • Laatst online: 22:08

MadEgg

Tux is lievvv

Op zondag 02 juni 2002 21:25 schreef Arthur_ het volgende:
Omdat de ADSL verbinding vrijwel ieder weekend uitvalt terwijl ik dan niet fysiek toegang tot de computer in kwestie heb moet ik die computer instellen dat hij de router reboot als dat nodig is. Daarna doet de verbinding het namelijk weer.

Daarvoor heb ik een shellscriptje nodig dat een telnetverbdinding met de router maakt (tot hier toe lukt het mij ook nog wel) maar dan moet ie via telnet automatisch het password doorsturen en daarna het commando "sys reboot" aan de router geven.

Hoe doe ik dit? In de telnet manpage staat het niet.

Misschien zoiets?:

telnet [IP router] < macrobestandje

Maar wat moet er dan in het macrobestandje staan. Gewoon password \n sys reboot \n werkt niet.

De computer in kwestie is een FreeBSD doos (al zal het met linux precies hetzelfde gaan denk ik) en de router is een Vigor 2200E.
Is dit een router-kastje of gewoon een computer die als router functioneerd?

Tja


Verwijderd

Topicstarter
Ik heb al de nieuwste firmware's op m'n router en modem. Ik heb de hoop al opgegeven dat KPN/Xs4all m'n probleem gaat verhelpen. KPN weigert sowiso te helpen als je iets anders dan een windows computer op je modem hebt staan en xs4all kan alleen helpen als ik op het moment van de probelemen bij de computer kan zitten en dan de helpdesk bel maar dat gaat dus niet lukken want ik kan er in het weekend niet bij (en dat is steeds wanneer het uitvalt).

Omdat het nu een vraag over telnet/shell scripting is geworden leek het mij toepasselijker om hier verder te vragen.

Ik probeer er echt al weken achter te komen wat er nou mis is en hoe de verbinding helemaal stabiel te krijgen is maar het lukt gewoon niet. Op deze manier is het probleem te verhelpen met een downtime van 3 seconden voor het rebooten van het modem en aangezien het gemiddeld zo'n 1 keer per week gebeurt is dat te doen.

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 30-04 10:41

odysseus

Debian GNU/Linux Sid

Geen idee in hoeverre die router van alles ondersteunt, maar kun je geen scriptje maken dat uitgevoerd wordt zodra er activiteit is op een bepaalde poort? Zie de inetd-scriptjes die hier onder andere door Nelske geschreven zijn en in de archieven opgeslagen zitten.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


Verwijderd

Topicstarter
Op zondag 02 juni 2002 21:37 schreef MadEgg het volgende:

[..]

Is dit een router-kastje of gewoon een computer die als router functioneerd?
Ja de router is een kastje. Een Draytek Vigor 2200E. Die valt dus niet in te stellen dat hij zichzelf op het juiste moment reboot. Als internet uitvalt denk de router namelijk nog steeds dat hij een verbinding heeft er komt alleen geen traffic meer doorheen.

Het is dus de bedoeling dat de FreeBSD doos om de 10 min bijvoorbeeld de nameserver dan xs4all pingt en als ie geen reply meer krijgt dan met telnet op router inloggen en die rebooten. Om de 10 minuten laten pingen en bij geen reply een script uitvoeren lukt wel. Maar dan... Hoe laat ik een script met telnet inloggen en een commando uitvoeren?

  • beuki
  • Registratie: September 2001
  • Laatst online: 13-02 11:54
Lijkt erop alsof je met een "here-document" wilt gaan werken.

A here document uses a special form of I/O redirection to feed a command script to an interactive program, such as ftp, telnet, or ex.

Zie voor verdere info: http://www.tldp.org/LDP/abs/html/here-docs.html

Suc6!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 29-04 12:25

deadinspace

The what goes where now?

Misschien dat het lukt met iets als
code:
1
echo -e 'password\ncommando' | nc <IP> <poort>

Verwijderd

Topicstarter
Expect was ik zelf ook al tegen gekomen maar omdat het zo simpel is hoop ik dat het te doen is zonder speciale programma's te installeren.

Beuki, het lijkt er op dat dit is wat ik zocht. Bedankt!

Verwijderd

Topicstarter
Hmm shit bij nader inzien doet een Here script precies hetzelfde als

telnet [IP] < macrobestand

't Zou toch moeten werken...

  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

gebruik "expect".

Dan krijg je zoiets als:
code:
1
2
3
4
5
6
#!/usr/bin/expect -f

expect "assword:"
send "<paswoord>\n"
expect ">"
send "sys reboot"

Heel ideaal voor dit soort dingen en iets meer fout-tolerant dan een scriptje netcatten of telnetten. :)

Yo dawg, I heard you like posts so I posted below your post so you can post again.


Verwijderd

Topicstarter
Ik snap 't al met Here scripts of "<" kan je niet wachten tot er om een password gevraagd wordt dus in dit geval moet ik wel Expect gebruiken, hoe simpel het ook is. Want zoals bij ftp met -n inloggen kan niet.

Hopelijk lukt het me nu wel. Kan pas morgen uitproberen als de verbinding het 'spontaan' weer gaat doen en ik er bij kan.

Bedankt allemaal!

  • beuki
  • Registratie: September 2001
  • Laatst online: 13-02 11:54
Hmm.. indeed.. daar had ik niet zo bij nagedacht. Het kan even duren voordat de telnet connectie er is..

Suc6 met de andere oplossing!
Pagina: 1