Lieven wrote:
>
> Hallo,
>
> Ik gebruik telnet in een bash-script om gegevens van een andere
> komputer op te halen. Even telnetten naar een poort > 1024 waar ik op
> de andere komputer een scriptje draai dat enkele gegevens weergeeft.
>
> Wanneer cron dit script uitvoert, zijn de resultaten anders dan
> wanneer ik het manueel doe ...
>
> Het script GetTemp :
>
> galadriel:~# cat GetTemp
> ----------------------------------------
> #!/bin/sh
>
> /usr/bin/telnet 192.168.1.25 1789 > /tmp/temp 2>/tmp/temp2
>
> galadriel:~#
> ----------------------------------------
>
> Wanneer ik dit uitvoer, is alles OK :
>
> ----------------------------------------
> galadriel:~# ./GetTemp
> galadriel:~# cat /tmp/temp
> Trying 192.168.1.25...
> Connected to 192.168.1.25.
> Escape character is '^]'.
> Temperatuur, 2000.06.01 08:21.02, 24.1, 26.8, 22.7
> galadriel:~# cat /tmp/temp2
> Connection closed by foreign host.
> galadriel:~#
> ----------------------------------------
>
> Wanneer dit door cron gerund werd, komen de gegevens (de regel
> 'Temperatuur ...') helaas *niet* in het bestand terecht, alle andere
> output van telnet *wel* :
>
> ( ... cron voerde het script uit ...)
>
> ----------------------------------------
> galadriel:~# cat /tmp/temp
> Trying 192.168.1.25...
> Connected to 192.168.1.25.
> Escape character is '^]'.
> galadriel:~# cat /tmp/temp2
> Connection closed by foreign host.
> galadriel:~#
> ----------------------------------------
>
> Weet iemand hoe dit komt ?
>
> Lieven.

nee,

Het zou kunnen komen door environment variabelen die anders staan als
cron runt dan bij interactief gebruik.

Het is bekend dat Telnet een lastige klant is om op een niet
interactieve manier ge^H^Hmisbruikt te worden.

Daarom bestaat er een tool zoals expect (zie http://expect.nist.gov/ )
Maar ik denk dat expect+telnet voor uw toepassing overkill is.

Gebruik liever netcat ( http://freshmeat.net/projects/netcat/ ).

  #!/bin/sh
  /usr/local/bin/nc 192.168.1.25 1789 > /tmp/temp 2>/tmp/temp2

Mark.