Задать вопрос

Как правильно сделать telnet сессию через Automator?

Здравствуйте, открыл для себя такой замечательный инструмент в Mac OS как Automator.

Есть желание автоматизировать посылку разных комманд роутеру. Подскажите, как правильно написать скрипты через Automator. Ручками, это выглядит так.

— запускаю треминал

— ввожу «telnet 192.168.1.1»

— спрашивает login, ввожу admin

— спрашивает password, ввожу admin

— ввожу «show adsl»

— получаю стсту подключения.


Хочу сделать чтобы все автоматом, нажал приложение app, сделанное в automator, и сразу получил статус adsl.

Увернен что такое возможно. Но, никак не получается. Пробовал через Workflow — Run shell Script…

не получается последовательно вводить комманды.

Если кто такое делал или есть идеи, подскажите плиз.

Спасибо.
  • Вопрос задан
  • 4175 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
iStyx
@iStyx
Вам нужен обычный AppleScript:

set statusCommand to "show adsl"
tell application "Terminal"
	do script "telnet 192.168.1.1"
	set wID to id of front window
	delay 1
	do script "admin" in front window
	delay 1
	do script "admin" in front window
	delay 1
	do script statusCommand in front window
	delay 1
	set startLine to 1
	set answer to every paragraph of (contents of window id wID as text)
	do script "exit" in front window
	repeat with lineNumber from 2 to count of answer
		tell item lineNumber of answer
			if it contains statusCommand then
				set startLine to lineNumber
			end if
			if it starts with "Connection closed" then
				exit repeat
			end if
		end tell
	end repeat
	set status to items (startLine + 1) thru (lineNumber - 1) of answer
end tell
set od to AppleScript's text item delimiters
set AppleScript's text item delimiters to ASCII character 13
display dialog status as text buttons {"OK"}
set AppleScript's text item delimiters to od
Ответ написан
Комментировать
vvpoloskin
@vvpoloskin
Инженер связи
Слишком платформозависимо. Может лучше python/perl/php решение?
Ответ написан
Odessamarin
@Odessamarin Автор вопроса
Я думал черз комманды terminal или apple script.

Ответ написан
Комментировать
@facetheheat
Вам нужен не обычный AppleScript, а обычный терминал.

router.sh:
expect \"$\"
send \"telnet 192.168.1.1\r\"
expect \"login:\"
send \"admin\r\"
expect \"Password:\"
send \"admin\r\"
expect \"#\"
send \"show adsl\r\"
expect \"#\"


Далее можно запустить его через Automator/AppleScript Editor -> application
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы