Как из скрипта выполнить команды в telnet
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- kharkov_max
- капитан
- Сообщения: 1861
- Зарегистрирован: 2008-10-03 14:56:40
Как из скрипта выполнить команды в telnet
Добрый день.
Возможно ли из shell скрипта подключится к хосту по протоколу telnet и выполнить, сделать вывод нескольких команд.
Вручную команды работают, по процесс нужно автоматизировать скриптом.
Если не тяжело киньте примером ...
Возможно ли из shell скрипта подключится к хосту по протоколу telnet и выполнить, сделать вывод нескольких команд.
Вручную команды работают, по процесс нужно автоматизировать скриптом.
Если не тяжело киньте примером ...
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Как из скрипта выполнить команды в telnet
Код: Выделить всё
> cat /usr/ports/lang/expect/pkg-descr
Expect is a program that performs programmed dialogue with other
interactive programs. It is briefly described by its man page, expect(1).
It uses pseudo-tty's to control the child processes, so it is not affected
by programs that refuse to read from stdin or pipes. (eg: passwd(1) etc).
WWW: http://expect.nist.gov/
FAQ: http://expect.nist.gov/FAQ.html
>
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
- kharkov_max
- капитан
- Сообщения: 1861
- Зарегистрирован: 2008-10-03 14:56:40
Re: Как из скрипта выполнить команды в telnet
Уже нашел про expect.
Такой вопрос, а будет ли возможным и как реализовать.
К примеру мне из вывода telnet необходимо получить данные, далее в shell их проанализировать (изменить, добавить) и передать в telnet на хост команду с параметрами.
Просто пока не совсем понимаю как это все можно связать в shell скрипт ...
Такой вопрос, а будет ли возможным и как реализовать.
К примеру мне из вывода telnet необходимо получить данные, далее в shell их проанализировать (изменить, добавить) и передать в telnet на хост команду с параметрами.
Просто пока не совсем понимаю как это все можно связать в shell скрипт ...
- liet
- мл. сержант
- Сообщения: 78
- Зарегистрирован: 2012-01-04 13:47:43
- Откуда: UA, Kiev
- Контактная информация:
Re: Как из скрипта выполнить команды в telnet
если не ошибаюсь - можно. с экспектом не очень активно работал. в основном задача сводилась до выполнения определенных команд. но с другой стороны никто не запрещает писать консольные скриты на перле или пхп.kharkov_max писал(а):Уже нашел про expect.
Такой вопрос, а будет ли возможным и как реализовать.
К примеру мне из вывода telnet необходимо получить данные, далее в shell их проанализировать (изменить, добавить) и передать в telnet на хост команду с параметрами.
Просто пока не совсем понимаю как это все можно связать в shell скрипт ...
xxx: Иногда лучше сказать: "Я не знаю", чем пытаться что-то донести до дурака.
- kharkov_max
- капитан
- Сообщения: 1861
- Зарегистрирован: 2008-10-03 14:56:40
Re: Как из скрипта выполнить команды в telnet
Нашел empty http://www.opennet.ru/base/dev/interact ... s.txt.html
Вроде как то что нужно
Пишу
В результате получаю
Такое ощущение что вообще не подключается телнетом
А скрипт на expect отработал нормально ...
Но expect будет тяжело выводить в файл и т.д. думаю использовать empty, только пока не понятно почему не телнетится ...
Вроде как то что нужно
Пишу
Код: Выделить всё
#!/bin/sh
empty -f -i in.fifo -o out.fifo telnet -K 192.168.0.1 7777
empty -w -i out.fifo -o in.fifo "ogin:" "login\n"
empty -w -i out.fifo -o in.fifo "assword:" "password\n"
empty -s -o in.fifo "command > /usr/home/Script/keylist.txt\n"
empty -s -o in.fifo "exit\n"
Код: Выделить всё
empty: Data stream is empty. Keyphrase wasn't found. Exit on timeout
empty: Data stream is empty. Keyphrase wasn't found. Exit on timeout
А скрипт на expect отработал нормально ...
Но expect будет тяжело выводить в файл и т.д. думаю использовать empty, только пока не понятно почему не телнетится ...
- kharkov_max
- капитан
- Сообщения: 1861
- Зарегистрирован: 2008-10-03 14:56:40
Re: Как из скрипта выполнить команды в telnet
Ошибку поборол, просто empty уже висел в процессах.
Сделал killall -9 empty, и на всякий случай вставил в скрипт.
Но теперь при запуске скрипт просто висит и все, передача логина похоже не проходит.
Сделал killall -9 empty, и на всякий случай вставил в скрипт.
Но теперь при запуске скрипт просто висит и все, передача логина похоже не проходит.
- liet
- мл. сержант
- Сообщения: 78
- Зарегистрирован: 2012-01-04 13:47:43
- Откуда: UA, Kiev
- Контактная информация:
Re: Как из скрипта выполнить команды в telnet
куча лишних переменных. выдирал из своего скрипта куски кода.
как-то так сумбурно.
а дальше читаем о библиотеке Net::Telnet
Код: Выделить всё
#!/usr/bin/perl
use Net::Telnet ();
use Switch;
my ($user, @passwd, $pwd, $t, $ip_sw, $ip_user, $port, $port1, $porti, $mac);
my $t;
sub catalyst
{
$t = new Net::Telnet;
$t->open($ip_sw);
$t->waitfor('/username:.*/i');
$t->print($user);
print $user."\n";
$t->waitfor('/password:.*/i');
$t->print($pwd);
print $pwd."\n";
$t->print("enable");
$t->waitfor('/password:.*/i');
$t->print($pwd);
$t->waitfor('/\S+\#/');
$t->print("conf t");
$t->waitfor('/\S+\#/');
$t->print("no username admin");
$t->waitfor('/\S+\#/');
$t->print("username admin privilege 15 password **********");
$t->waitfor('/\S+\#/');
$t->print("no enable secret");
$t->waitfor('/\S+\#/');
$t->print("enable secret ********");
$t->waitfor('/\S+\#/');
$t->print("end");
$t->waitfor('/\S+\#/');
$t->print("write");
$t->waitfor('/\S+\#/');
$t->print("exit");
# $t->waitfor("/Connection closed by foreign host./");
$t->close;
}
а дальше читаем о библиотеке Net::Telnet
xxx: Иногда лучше сказать: "Я не знаю", чем пытаться что-то донести до дурака.
- kharkov_max
- капитан
- Сообщения: 1861
- Зарегистрирован: 2008-10-03 14:56:40
Re: Как из скрипта выполнить команды в telnet
Вот так вроде получается
(sleep 1 ; command1 ; sleep 2 ; command2 .....) | telnet IP port | grep ... | ... > ./filename.txt
(sleep 1 ; command1 ; sleep 2 ; command2 .....) | telnet IP port | grep ... | ... > ./filename.txt