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.