Eu tenho várias caixas Linux com um conjunto muito limitado de comandos e espaço em disco. Mas tem o telnet
comando.
Eu me conecto remotamente a cada uma dessas análises (programaticamente) e emito um comando linux de linha através do SSH.
Preciso executar um único comando para conectar-me a uma máquina específica, usando telnet e desconectar imediatamente .
Eu posso fazer tudo isso, mas a desconexão parte imediatamente . O Telnet abre algum tipo de console ou terminal e não consigo descobrir um comando de uma linha para executar o comando telnet e desconectar imediatamente.
Se fizer isso, posso analisar facilmente a saída de texto em busca de mensagens de erro por não conseguir conectar à máquina na porta especificada e é exatamente isso que estou procurando.
Então, como posso executar um comando de uma linha para conectar-me a uma máquina usando telnet e desconectar depois?
Respostas:
Você deve poder canalizar o
exit
comando para STDINtelnet
. Experimentar:e veja se isso funciona. (parece funcionar no meu servidor web, mas no YMMV).
fonte
O método mais simples e fácil é dado abaixo.
n - O tempo de espera em segundos antes da saída automática. Pode ser fracionário como 0,5. Observe que alguma saída necessária pode não ser retornada no tempo de espera especificado. Portanto, podemos precisar aumentar de acordo.
servidor - o IP do servidor de destino ou o nome do host.
port - número da porta de serviço de destino.
Você também pode redirecionar a saída para um arquivo como este,
fonte
No meu caso, isso funciona. (CentOS 7):
fonte
Acho melhor ferramenta para enviar comandos diretamente e apenas obter saída seria netcat. É uma ferramenta simples, mas poderosa, para colocar comandos nas portas. Você pode ver um exemplo de uso nesta pergunta de superusuário: /superuser/261900/how-can-i-pipe-commands-to-a-netcat-that-will-stay-alive - asker fornece um exemplo prático em que a conexão fecha após alguns segundos.
E se você quiser apenas testar a conectividade, use este: http://terminalinflection.com/use-netcat-not-telnet-to-test-network-connectivity/
fonte
&& exit
ver se ele desconecta (no ssh pelo menos é o suficiente).&& exit
não funcionou. Se o glibc deveria existir e acredito que sim. Por quenc.traditional
reclamaria como se estivesse faltando?Esta é outra versão da resposta acima que a faz agir um pouco mais como a sintaxe telnet "normal". Se você gosta da minha resposta, dê um voto positivo não para isso, mas para o original.
fonte
Aqui está a solução que encontrei na Internet:
Funciona para mim no SunOS e HP-UX
fonte
Experimentar
A melhor parte acima é que você também obtém o status de saída. Se o telnet for bem-sucedido, o código de saída será 0 ou então 1
fonte
Evite o netcat se você tiver rotas personalizadas, pois elas não obedecem às regras de roteamento. Semelhante a como
nslookup
,dig
&host
ignore o arquivo / etc / hosts ( nslookup, dig, firefox ignorando as entradas do arquivo / etc / hosts ).ou seja: ao contrário de aplicativos e ferramentas como
telnet
e/dev/tcp
( Testando a porta TCP remota usando telnet executando um comando de uma linha ) que seguem as regras de roteamento do sistema,nc
usa o gateway padrão, a menos que seja especificamente solicitado a usar um endereço IP de origem com-s
:Eu precisava testar se um aplicativo poderia alcançar o recurso e se as rotas estavam inoperantes,
netcat
informou que tudo estava bem, pois o endereço de origem havia sido especificado no teste. Estou mudando para o uso/dev/tcp
.fonte