3

В настоящее время я делаю что-то вроде этого:

telnet 192.168.0.3 23

username

password

cd /dir/

programname -s -g dosomething

Я хочу сделать это за один шаг, самое крутое было бы скомпилировать программу для этого с помощью Automator, но я понятия не имею, как это сделать.
"Сценарий оболочки" в Automator завершается с ошибкой в telnet 192.168.0.3 23 говоря, конечно, "соединение отказано": у меня не было возможности ввести пароль и так далее.

Есть идеи?

3 ответа3

2

Затем, если sshd не установлен, вы можете автоматизировать свой telnet, используя ожидаемое, что вам, вероятно, придется установить на ваш Mac.

Expect - это инструмент, предназначенный в основном для автоматизации интерактивных приложений, таких как telnet, ftp, passwd, fsck, rlogin, tip и другие. Ожидать действительно делает этот материал тривиальным. Expect также полезен для тестирования этих приложений. Это описано во многих книгах, статьях, статьях и часто задаваемых вопросах. Есть целая книга, доступная от О'Рейли.

См. Http://www.nist.gov/el/msid/expect.cfm .

2

Когда ssh недоступен, expect , что обычно используется для автоматизации доступа с использованием telnet.

Из связанной статьи:

#!/usr/bin/expect #Where the script should be run from.
set timeout 20 #If it all goes pear shaped the script will timeout after 20 seconds.
set name [lindex $argv 0] #First argument is assigned to the variable name
set user [lindex $argv 1] #Second argument is assigned to the variable user
set password [lindex $argv 2] #Third argument is assigned to the variable password
spawn telnet $name #This spawns the telnet program and connects it to the variable name
expect "login:" #The script expects login
send "$user " #The script sends the user variable
expect "Password:" #The script expects Password
send "$password " #The script sends the password variable
interact #This hands control of the keyboard over two you (Nice expect feature!)
0

Если в системе, работающей на 192.168.0.3, запущен sshd-сервер, вы можете просто

ssh username@192.168.0.3 'cd /dir/ ; programmname -s -g dosomething'

Чтобы проверить, работает ли у вас sshd на 192.168.0.3, вы можете либо просто попробовать его, либо войти в систему, используя telnet, как вы уже сделали, и, если это unix/linux/maxosx, попробуйте выполнить

pgrep -fl sshd

или же

ps -e | grep sshd

или же

lsof -i :22

Все вышеперечисленное либо ничего не найдет, либо выдаст строку, показывающую, что sshd работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .