Arquivo de saída do Telnet NÃO FUNCIONA Corretamente SOB Crontab

0

Estou usando o Ubuntu 10.04.4LTS e tenho o Ganglia instalado no meu computador.

Eu costumava pegar os dados do Gmetad digitando:

telnet localhost 8651 > /test/test.txt

ou fez um arquivo .sh para executá-lo. Depois disso, quero obter dados do Gmetad periodicamente. Eu tento Crontab. Depois de algum teste simples, tenho certeza de que o Crontab funciona no meu Ubuntu. No entanto, quando tento fazer o crontab obter os dados, configure assim:

*/5 * * * * root sudo telnet localhost 8651 > /test/test.txt

O arquivo de saída ficará incompleto, por exemplo:

3263  2012-07-13 09:28 FromCrontab.txt
44833 2012-07-13 08:14 CorrectOne.txt

O arquivo CorrectOne.txt contém 44833 caracteres, mas o arquivo de saída do Crontab contém apenas 3263 caracteres.

Eu tentei resolver isso usando tee :

sudo telnet localhost 8651 | tee -i /test/test.txt

ou altere o SHELL:

SHELL=/bin/sh or SHELL=/bin/bash

nenhum deles poderia ajudar.

Sou novo no Ubuntu e não estou familiarizado com crontab ou telnet. Espero que alguém possa me ajudar a resolver esse problema ou me dê alguma orientação para estudar.

Obrigado.

    
por James 13.07.2012 / 03:43

1 resposta

1

Use nc:

 The nc (or netcat) utility is used for just about anything under the sun
 involving TCP or UDP.  It can open TCP connections, send UDP packets,
 listen on arbitrary TCP and UDP ports, do port scanning, and deal with
 both IPv4 and IPv6.  Unlike telnet(1), nc scripts nicely, and separates
 error messages onto standard error instead of sending them to standard
 output, as telnet(1) does with some.

Para instalá-lo, digite sudo apt-get install netcat-openbsd .

Algo como isso deve ser um bom substituto para sua linha de telnet (isso pressupõe que você não precisa enviar ou digitar nada para obter os dados; desculpe, eu não estou familiarizado com os gânglios):

nc localhost 8651 > /test/test.txt

E no seu / etc / crontab:

* * * * * root nc localhost 8651 > /test/test.txt

Observe que, se você estiver executando isso como root, não precisará do sudo. De fato, mesmo como um usuário normal, você deve não precisar usar o sudo para executar o nc. Por razões de segurança, sugiro que você evite usar root ou sudo, a menos que seja estritamente necessário.

    
por roadmr 13.07.2012 / 04:06