Биллинговая система Nodeny
25 Ноября 2024, 06:02:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Автоматизация команд  (Прочитано 14519 раз)
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« : 13 Марта 2012, 16:24:02 »

Приветствую. Возникла необходимость программы для автоматизации.

Интересует следующие: чтобы например запускать putty вводить логин, пароль, нужные команды с задержкой и завершатся.

Сделал такое через vbs, но минус в тому что нужно быть в системе, в фоне не работает.

И да, решение нужно для винды.

Ах да, что-то очень похожее нужно как в unix - expect.
« Последнее редактирование: 13 Марта 2012, 16:26:22 от Александр (AleksHr) » Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #1 : 13 Марта 2012, 17:24:55 »

Хыхы. Делал нечто подобное. ужно было чтобы саппорт коннектился на свитчи в другом городе, но  решение должно было быть таким, чтобы не пробрасывать влан до саппорта.
Делалось через ssh - саппорт коннектится (по ключу) к серверу который доступен извне и имеет доступ к влану в котором находятся свитчи, и вместо привычного PROMPT Shell'а у них запрос IP свитча с последующим коннектом к нему по телнету. При выходе из телнета все повторяется заново. Т.е. никаких команд саппорт выполнить не может.
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #2 : 13 Марта 2012, 17:30:13 »

Тут нужно понять задачи, которые выполняются таким экстравагантным способом. Мне кажется, что можно найти более продвинутое решение. А что до экспекта, так у нас на нем вся автоматизация работы с коммутаторами написана. Вот буквально сегодня поменял пароли на 423 свитчах т.к. один из админчеггов уволился. Времени заняло что-то около часа, и то из-за зоопарка оборудования.
Записан
Crestfallen
Пользователь
**

Карма: 2
Offline Offline

Сообщений: 44


Просмотр профиля Email
« Ответ #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 Offline

Сообщений: 323


Просмотр профиля
« Ответ #4 : 13 Марта 2012, 19:50:10 »

Спасибо большое! Не знал что патти умеет читать команды с файла и выполнять их.
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline 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
Пользователь
**

Карма: 2
Offline Offline

Сообщений: 44


Просмотр профиля Email
« Ответ #6 : 13 Марта 2012, 20:03:13 »

Пробовали виндовый expect по ссылке выше?
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #7 : 13 Марта 2012, 21:45:01 »

Пробовали виндовый expect по ссылке выше?
Нет, не знал про него - попробую, вот думаю как его заставить окошко выплевывать при запуске "введите логин, сессию которого необходимо разорвать". Буду думать в этом направлении, спасибо за наводку.
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #8 : 13 Марта 2012, 22:30:13 »

Что-то я не пойму, то вам нужно выполнение в фоне, то окошко с интерактивным вводом) вы уж как-то определитесь) .
А решение самое простое. Надеюсь вебсервер у вас имеется? перл или пхп вам  в руки + биллиотека экспекта, хотя можно прямо сокетами телнет поднимать. Все, вот вам и окошко, и виндафс, и даже симбиан) ) )
Записан
Crestfallen
Пользователь
**

Карма: 2
Offline Offline

Сообщений: 44


Просмотр профиля Email
« Ответ #9 : 14 Марта 2012, 08:33:45 »

Кстати, возможно проще будет на юниксовом вебсервере поднять скрипт, и запускать его через браузер с любой ОС?)
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline Offline

Сообщений: 349


Просмотр профиля
« Ответ #10 : 14 Марта 2012, 10:08:02 »

Что-то я не пойму, то вам нужно выполнение в фоне, то окошко с интерактивным вводом) вы уж как-то определитесь) .
А решение самое простое. Надеюсь вебсервер у вас имеется? перл или пхп вам  в руки + биллиотека экспекта, хотя можно прямо сокетами телнет поднимать. Все, вот вам и окошко, и виндафс, и даже симбиан) ) )

А как скрипт в фоне будет угадывать сессию какого пользователя разорвать? Или его собрать с libastral.so Человек прошивающий роутеры не хочет может заходить на циску и сбрасывать соединение, по этому звонит мне или в техподдержку и тратит время. Вот ему и нужен простой инструмент для этого. Пойду мучать ПХП.
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #11 : 14 Марта 2012, 10:36:52 »

большинство операций можно сделать по SNMP. Посмотрите OIDы на эту циску, и я уверен, что найдете простое решение
Записан
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #12 : 14 Марта 2012, 11:28:14 »

Cell, мы разные люди, мне нужно в фоне, ему нет  Подмигивающий
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #13 : 14 Марта 2012, 11:52:57 »

есть putty connection manager
она спасет
Записан
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #14 : 14 Марта 2012, 11:57:22 »

Crestfallen, putty не умеет использовать скрипты, ето только может plink.

Но! Не могу командами в скрипте залогинится под суперюзером, для той же перезагрузки.

Пример скрипта:
Код:
su
root_pass
sleep 1
shutdown -r now

Не работает, пишет не правильный пароль рута...
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!