J'ai de nombreuses boîtes Linux avec un ensemble très limité de commandes et d'espace disque. Mais il a la telnet
commande dessus.
Je me connecte à distance à chacune de ces sondes (par programme) et émets une commande linux en ligne via SSH.
Je dois exécuter une seule commande pour me connecter à une machine spécifique, en utilisant telnet, puis me déconnecter immédiatement .
Je peux faire tout ça, mais la déconnexion part tout de suite . Telnet ouvre une sorte de console ou de terminal et je n'arrive pas à trouver une commande sur une ligne pour exécuter la commande telnet, puis se déconnecter immédiatement.
Si je fais cela, je peux facilement analyser la sortie textuelle des messages d'erreur pour ne pas pouvoir me connecter à la machine sur le port spécifié et c'est exactement ce que je recherche.
Alors, comment puis-je exécuter une commande sur une ligne pour me connecter à une machine en utilisant Telnet et me déconnecter ensuite?
Réponses:
Vous devriez pouvoir
exit
diriger la commande dans STDIN danstelnet
. Essayer:et voyez si cela fonctionne. (il semble fonctionner sur mon serveur web, mais YMMV).
la source
La méthode la plus simple et la plus simple est donnée ci-dessous.
n - Le temps d'attente en secondes avant la sortie automatique. Il pourrait être fractionné comme 0,5. Notez que certaines sorties requises peuvent ne pas être renvoyées dans le temps d'attente spécifié. Il nous faudra donc peut-être augmenter en conséquence.
serveur - L'adresse IP ou le nom d'hôte du serveur cible.
port - Numéro de port de service cible.
Vous pouvez également rediriger la sortie vers un fichier comme celui-ci,
la source
Dans mon cas, cela fonctionne. (CentOS 7):
la source
Je pense que le meilleur outil pour envoyer des commandes directement et obtenir simplement la sortie serait netcat. C'est un outil simple mais puissant pour passer des commandes via les ports. Vous pouvez voir un exemple d'utilisation dans cette question de superutilisateur: /superuser/261900/how-can-i-pipe-commands-to-a-netcat-that-will-stay-alive - le demandeur donne un exemple de travail dans lequel la connexion se ferme après quelques secondes.
Et si vous voulez simplement tester la connectivité, utilisez ceci: http://terminalinflection.com/use-netcat-not-telnet-to-test-network-connectivity/
la source
&& exit
voir s'il se déconnecte (en ssh au moins c'est suffisant).&& exit
n'a pas fonctionné. Si la glibc devait exister et je pense que oui. Pourquoi s'ennc.traditional
plaindrait comme s'il manquait?Ceci est une autre version de la réponse ci - dessus qui la fait agir un peu plus comme la syntaxe telnet "normale". Si vous aimez ma réponse, veuillez donner une note positive non pas à cela, mais à l'original.
la source
Voici la solution que j'ai trouvée sur Internet:
Cela fonctionne pour moi sur SunOS et HP-UX
la source
Essayer
La meilleure partie de ce qui précède est que vous obtenez également le statut de sortie. Si telnet est réussi, le code de sortie sera 0 ou bien son 1
la source
Évitez netcat si vous avez des itinéraires personnalisés, car il n'obéit pas aux règles de routage. Similaire à la façon
nslookup
dontdig
&host
ignorer le fichier / etc / hosts ( nslookup, dig, firefox ignorant les entrées du fichier / etc / hosts ).c'est-à-dire: contrairement aux applications et aux outils tels que
telnet
et/dev/tcp
( Test du port TCP distant à l'aide de telnet en exécutant une commande à une ligne ) qui suivent les règles de routage du système,nc
utilise la passerelle par défaut, sauf indication contraire d'utiliser une adresse IP source avec-s
:J'avais besoin de tester si une application pouvait atteindre la ressource, et si les routes étaient en panne, j'ai
netcat
signalé que tout allait bien puisque l'adresse source avait été spécifiée dans le test. Je passe à l'utilisation/dev/tcp
.la source