Александр (AleksHr)
NoDeny
Старожил
Карма: 2
Offline
Сообщений: 323
|
|
« : 13 Марта 2012, 16:24:02 » |
|
Приветствую. Возникла необходимость программы для автоматизации.
Интересует следующие: чтобы например запускать putty вводить логин, пароль, нужные команды с задержкой и завершатся.
Сделал такое через vbs, но минус в тому что нужно быть в системе, в фоне не работает.
И да, решение нужно для винды.
Ах да, что-то очень похожее нужно как в unix - expect.
|
|
« Последнее редактирование: 13 Марта 2012, 16:26:22 от Александр (AleksHr) »
|
Записан
|
|
|
|
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
Карма: 116
Offline
Сообщений: 1059
|
|
« Ответ #1 : 13 Марта 2012, 17:24:55 » |
|
Хыхы. Делал нечто подобное. ужно было чтобы саппорт коннектился на свитчи в другом городе, но решение должно было быть таким, чтобы не пробрасывать влан до саппорта. Делалось через ssh - саппорт коннектится (по ключу) к серверу который доступен извне и имеет доступ к влану в котором находятся свитчи, и вместо привычного PROMPT Shell'а у них запрос IP свитча с последующим коннектом к нему по телнету. При выходе из телнета все повторяется заново. Т.е. никаких команд саппорт выполнить не может.
|
|
|
Записан
|
|
|
|
Cell
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1407
|
|
« Ответ #2 : 13 Марта 2012, 17:30:13 » |
|
Тут нужно понять задачи, которые выполняются таким экстравагантным способом. Мне кажется, что можно найти более продвинутое решение. А что до экспекта, так у нас на нем вся автоматизация работы с коммутаторами написана. Вот буквально сегодня поменял пароли на 423 свитчах т.к. один из админчеггов уволился. Времени заняло что-то около часа, и то из-за зоопарка оборудования.
|
|
|
Записан
|
|
|
|
Crestfallen
|
|
« Ответ #3 : 13 Марта 2012, 18:34:58 » |
|
Разве проще юзать vbs, чем почитать мануал по Putty? "C:\path\to\putty.exe" -ssh -l user -pw mypassword -m shutdown.txt my.host.org shutdown.txt: shutdown -h now где -ssh, -telnet, -rlogin, -raw Выбор протокола соединения. -l login Задать логин. -pw MyPaSsWoRd Задать пароль. -m script.file Исполнить команду. Параметр - путь к текстовому файлу со списком команд, которые требуется исполнить. Если дефолтный шелл bash, то задержка делается методом Syntax sleep [NUMBER [smhd]]... Key: s : seconds (default) m : minutes h : hours d : days Так же есть аналог expect для Windows - wiki.tcl.tk/3548
|
|
|
Записан
|
|
|
|
Александр (AleksHr)
NoDeny
Старожил
Карма: 2
Offline
Сообщений: 323
|
|
« Ответ #4 : 13 Марта 2012, 19:50:10 » |
|
Спасибо большое! Не знал что патти умеет читать команды с файла и выполнять их.
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #5 : 13 Марта 2012, 19:51:39 » |
|
Разве проще юзать vbs, чем почитать мануал по Putty? "C:\path\to\putty.exe" -ssh -l user -pw mypassword -m shutdown.txt my.host.org C телнетом не работает -pw. Может кто подскажет изящное решение. Есть человек который прошивает роутеры, задача чтоб он мог легко из под windows разорвать pppoe сессию нужного юзера, по его логину (должно выдаваться сообщение типа сессия разорвана/либо логин среди активных сессий не найден) Сложность в том что все pppoe создаются на cisco 10008. Сейчас это выглядит примерно так: Запуск эмулятора терминала telnet $IP-ADDRESS username password enable root password show user | i $USERNAME получаем номер сессии по логину clear interface virtual-access полученный выше номер как бы упростить эту цепочку? Через RSH нормально не получилось, кошка больно капризная
|
|
|
Записан
|
|
|
|
Crestfallen
|
|
« Ответ #6 : 13 Марта 2012, 20:03:13 » |
|
Пробовали виндовый expect по ссылке выше?
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #7 : 13 Марта 2012, 21:45:01 » |
|
Пробовали виндовый expect по ссылке выше?
Нет, не знал про него - попробую, вот думаю как его заставить окошко выплевывать при запуске "введите логин, сессию которого необходимо разорвать". Буду думать в этом направлении, спасибо за наводку.
|
|
|
Записан
|
|
|
|
Cell
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1407
|
|
« Ответ #8 : 13 Марта 2012, 22:30:13 » |
|
Что-то я не пойму, то вам нужно выполнение в фоне, то окошко с интерактивным вводом) вы уж как-то определитесь) . А решение самое простое. Надеюсь вебсервер у вас имеется? перл или пхп вам в руки + биллиотека экспекта, хотя можно прямо сокетами телнет поднимать. Все, вот вам и окошко, и виндафс, и даже симбиан) ) )
|
|
|
Записан
|
|
|
|
Crestfallen
|
|
« Ответ #9 : 14 Марта 2012, 08:33:45 » |
|
Кстати, возможно проще будет на юниксовом вебсервере поднять скрипт, и запускать его через браузер с любой ОС?)
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #10 : 14 Марта 2012, 10:08:02 » |
|
Что-то я не пойму, то вам нужно выполнение в фоне, то окошко с интерактивным вводом) вы уж как-то определитесь) . А решение самое простое. Надеюсь вебсервер у вас имеется? перл или пхп вам в руки + биллиотека экспекта, хотя можно прямо сокетами телнет поднимать. Все, вот вам и окошко, и виндафс, и даже симбиан) ) )
А как скрипт в фоне будет угадывать сессию какого пользователя разорвать? Или его собрать с libastral.so Человек прошивающий роутеры не хочет может заходить на циску и сбрасывать соединение, по этому звонит мне или в техподдержку и тратит время. Вот ему и нужен простой инструмент для этого. Пойду мучать ПХП.
|
|
|
Записан
|
|
|
|
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
Карма: 116
Offline
Сообщений: 1059
|
|
« Ответ #11 : 14 Марта 2012, 10:36:52 » |
|
большинство операций можно сделать по SNMP. Посмотрите OIDы на эту циску, и я уверен, что найдете простое решение
|
|
|
Записан
|
|
|
|
Александр (AleksHr)
NoDeny
Старожил
Карма: 2
Offline
Сообщений: 323
|
|
« Ответ #12 : 14 Марта 2012, 11:28:14 » |
|
Cell, мы разные люди, мне нужно в фоне, ему нет
|
|
|
Записан
|
|
|
|
stix
NoDeny
Спец
Карма: 72
Offline
Сообщений: 1872
Nodeny Support Team
|
|
« Ответ #13 : 14 Марта 2012, 11:52:57 » |
|
есть putty connection manager она спасет
|
|
|
Записан
|
|
|
|
Александр (AleksHr)
NoDeny
Старожил
Карма: 2
Offline
Сообщений: 323
|
|
« Ответ #14 : 14 Марта 2012, 11:57:22 » |
|
Crestfallen, putty не умеет использовать скрипты, ето только может plink. Но! Не могу командами в скрипте залогинится под суперюзером, для той же перезагрузки. Пример скрипта: su root_pass sleep 1 shutdown -r now
Не работает, пишет не правильный пароль рута...
|
|
|
Записан
|
|
|
|
|