LINUX.ORG.RU
решено ФорумAdmin

expect


1

1

Всем привет!

Пишу тестовый скрипт для сбора данных

Инструмент: expect, telnet, scp

алгоритм: в скрипте expect посылаю запрос на сервер с помощью telnet'a. Получаю ответ. В зависимости от возвращаемого ответа в telnet выхожу из скрипта, но в некоторых случаях, когда посылаю «scp» могу получить иной ответ, чем тот, что ожидаю, например - «The authenticity of host» и т.д.. Помогите пожалуйста разобраться с проблемой, как корректно завершить «expect».

#!/usr/local/bin/expect
send «telnet 172.17.`cut -f3 -d'.' /tmp/last_line`.3\r»
expect {
«login:» {send «root\r»}
expect {
«Password:» {send «alcatel\r»}
expect {
«STATION*» {send «/usr/sbin/smartctl -a /dev/hda > /tmp/smartstatusdata_OMCP1\r»}
expect {
«STATION*» {send «scp /tmp/smartstatusdata_OMCP1 rootsys@172.29.0.166:/tmp/smartstatusdata_OMCP1\r»}
expect {
«password:» {send «Rootsys\r»} #вместо «password» может может появиться запрос «The authenticity of host ...»
}
}
}
}
}
#program for OMCP2
send «telnet 172.17.`cut -f3 -d'.' /tmp/last_line`.4\r»



Последнее исправление: aguzyaev (всего исправлений: 11)

expect {
        "(yes/no)" { send "yes\r";exp_continue}
        "password"
}
send "Rootsys\r"

У выражения expect может быть несколько ожидаемых строк и ″exp_continue″ позволяет продолжить ожидание.

mky ★★★★★
()
Ответ на: комментарий от outsider

Это мой первый выход на форум. Так что не взыщите.

aguzyaev
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.