У меня есть множество Linux-коробок с очень ограниченным набором команд и дискового пространства. Но у него есть telnet
команда.
Я удаленно подключаюсь к каждому из этих зондов (программно) и выдаю одну команду line linux через SSH.
Мне нужно выполнить одну команду, чтобы подключиться к определенной машине, используя telnet, а затем сразу отключиться .
Я могу сделать все это, но отключение сразу . Telnet открывает какую-то консоль или терминал, и я не могу найти однострочную команду для запуска команды telnet, а затем сразу же отключиться.
Если я сделаю это, я смогу легко разобрать текстовый вывод на наличие сообщений об ошибках, так как я не могу подключиться к машине через указанный порт, и это именно то, что я ищу.
Итак, как я могу запустить однострочную команду для подключения к машине с помощью telnet и последующего отключения?
Ответы:
Вы должны быть в состоянии передать
exit
команду в STDINtelnet
. Пытаться:и посмотреть, если это работает. (кажется, работает на моем веб-сервере, но YMMV).
источник
Самый простой и легкий способ приведен ниже.
n - Время ожидания в секундах до автоматического выхода. Это может быть дробным, как 0,5. Обратите внимание, что некоторые требуемые выходные данные не могут быть возвращены в указанное время ожидания. Таким образом, нам, возможно, потребуется увеличить соответственно.
сервер - IP-адрес или имя хоста целевого сервера.
порт - Номер целевого сервисного порта.
Вы также можете перенаправить вывод в файл, как это,
источник
В моем случае это работает. (CentOS 7):
источник
Я думаю, что лучшим инструментом для прямой отправки команд и получения результатов будет netcat. Это просто простой, но мощный инструмент для ввода команд через порты. Вы можете увидеть пример использования в этом вопросе суперпользователя: /superuser/261900/how-can-i-pipe-commands-to-a-netcat-that-will-stay-alive - asker дает рабочий пример в котором соединение закрывается через несколько секунд.
И если вы хотите просто проверить подключение, используйте это: http://terminalinflection.com/use-netcat-not-telnet-to-test-network-connectivity/
источник
&& exit
увидеть, отключается ли он (в ssh по крайней мере этого достаточно).&& exit
не работал Если glibc должен существовать, и я верю, что он существует. Зачемnc.traditional
жаловаться на это, как будто это отсутствует?Это еще одна версия ответа выше, которая делает его немного более похожим на «обычный» синтаксис telnet. Если вам нравится мой ответ, пожалуйста, дайте оценку не этому, а оригиналу.
источник
Вот решение, которое я нашел в Интернете:
У меня работает на SunOS & HP-UX
источник
Пытаться
Лучшая часть выше, вы также получаете статус выхода. Если telnet успешен, код выхода будет 0 или 1
источник
Избегайте использования netcat, если у вас есть собственные маршруты, так как он не подчиняется правилам маршрутизации. Подобно тому , как
nslookup
,dig
иhost
игнорировать / и т.д. / хост файл ( записей Nslookup, роют, светлячок игнорирование / и т.д. / хост файл ).То есть: в отличие от приложений и инструментов, таких как
telnet
и/dev/tcp
( тестирование удаленного порта TCP с помощью telnet с помощью команды, состоящей из одной строки ), которые следуют правилам маршрутизации системы,nc
использует шлюз по умолчанию, если не указано иное использовать исходный IP-адрес с-s
:Мне нужно было проверить, может ли приложение получить доступ к ресурсу, и если маршруты не работают,
netcat
сообщили, что все в порядке, так как адрес источника был указан в тесте. Я перехожу на использование/dev/tcp
.источник