Em várias ocasiões, preciso de alguma automação via script que utilize um comando telnet. Existem vários problemas de segurança em relação ao uso do telnet, mas vários equipamentos de rede, entre switches e roteadores, fazem uso dele (se bem que é possível substituir por ssh).

 

Para usar em scripts, uma das formas mais fáceis de fazer isso é concatenando comandos. É possível fazer login, entrar com a senha, e enviar os comandos necessários.

Como exemplo, uma conexão telnet normalmente seria da seguinte forma:

  • Nome do servidor destino: server
  • Login: user
  • Senha: user

[helio@linux ~]$ telnet server 
Trying 10.10.7.4... 
Connected to server. 
Escape character is '^]'. 
login: user 
Password: 
user@server> exit 
logout 
Connection to server closed by foreign host.

Agora no formato para scripts, utilizando o pipe:


[helio@linux ~]$ (echo "user"; sleep 1; echo "user"; sleep 1;echo "date"; sleep 1) | telnet server 
Trying 10.10.7.4... 
Connected to server. 
Escape character is '^]'. 
login: 
Password: 
user@server>date 
Thursday, July 29, 2010 8:11:52 PM BRT 
user@server>
Connection to server closed by foreign host.

 

Cada comando echo envia para o telnet os comandos que seriam digitados. Utilizei um comando date como exemplo, mas é possível enviar outros comandos e até mesmo ler a saída do comando, redirecionando para um arquivo.