Ожидание Perl - как контролировать время ожидания на целевой машине - PullRequest
3 голосов
/ 28 июня 2010

Я новичок в Perl. Я использую Perl Ожидаем модуль для создания удаленной системы. Выполняйте набор команд там одну за другой, используя отправляющий модуль (например, $ exp-> send («моя команда в виде строки идет сюда \ n»). Проблема в том, что команды, которые я выполняю, занимают некоторое время для обработки. И до того, как все команда окончания удаленного компьютера истекает по тайм-ауту, и я возвращаюсь к моему приглашению хост-машины. Не могли бы вы помочь мне, как справиться с этим .?

У меня есть еще один вопрос. У меня есть команда, которая возвращает 2 значения после выполнения (скажем, я делаю печать для 2 значений на удаленном компьютере). Я хочу захватить эти 2 значения и передать в качестве аргумента следующую команду, используя модуль отправки. Как мне это сделать.

Пожалуйста, помогите мне с этой проблемой.

Спасибо.

Я только что узнал что-то об ожидаемом модуле. Существует опция undef, которую можно использовать с ожидаемым, например, $ exp-> Ожидайте (undef). Это будет ждать бесконечно и позволит всем командам завершить свою обработку. Но проблема в том, что он не возвращает обратно управление хост-машине. Есть еще один вариант использования ожидаемого с eof, который будет ожидать, пока он не обнаружит eof, а затем вернется на хост-компьютер. Хотя понятия не имею, как именно его использовать. Элегантное решение, которое я нашел, состоит в том, чтобы использовать ssh для запуска команд на удаленной машине, а не использовать ожидаемое, в этом случае нам не приходится иметь дело с таймаутами. :)

1 Ответ

1 голос
/ 30 июня 2010

Я только что узнал кое-что о ожидаемом модуле. Существует опция undef, которую можно использовать с ожидаемым, например, $ exp-> Ожидайте (undef). Это будет ждать бесконечно и позволит всем командам завершить свою обработку. Но проблема в том, что он не возвращает обратно управление хост-машине. Есть еще один вариант использования ожидаемого с eof, который будет ожидать, пока он не обнаружит eof, а затем вернется на хост-компьютер. Хотя понятия не имею, как именно его использовать. Элегантное решение, которое я нашел, состоит в том, чтобы использовать ssh для запуска команд на удаленной машине, а не использовать ожидаемое, в этом случае нам не приходится иметь дело с таймаутами. :)

...