Ответ на запросы оболочки из задачи Ant SSH (SSHEXEC) - PullRequest
1 голос
/ 12 октября 2009

Я использую задачу муравья SSHEXEC для запуска SSH-скрипта на удаленной машине linux.

Это работало нормально, пока я не попытался вызвать ksh-скрипт, который запрашивает ввод у пользователя. Скрипт меняет текущего пользователя (например, su). Он запрашивает у пользователя change_request_id и change_request_reason. Таким образом, обычное использование этой команды в оболочке будет выглядеть так:

change_user deploy_user
Please enter the changes request number for doing this: 1234
Please enter the changes request reason: Because I can
<deploy_user>

Но когда я запускаю эти команды из SSHEXEC, он получает первую подсказку «Пожалуйста, введите номер запроса на изменение для этого:» и останавливается. Несмотря на то, что я передаю ответ на это приглашение через SSHEXEC, он все равно застревает здесь.

К сожалению, у нас нет доступа для изменения или копирования сценария оболочки change_user.

Мне было интересно, есть ли какой-нибудь способ, которым я мог бы использовать SSHEXEC, который отправлял бы быстрые ответы с командой.

Любая помощь будет оценена.

1 Ответ

2 голосов
/ 12 октября 2009

Можете ли вы разместить другой сценарий на том же сервере, что и сценарий изменения пользователя, который принимает параметры командной строки и затем вызывает сам сценарий запроса на изменение? Например. в кш:

#!/usr/bin/ksh
#
# $1 is change request number
# $2 is change request reason
#
/path/to/change_request_cmd <<PARAMS
$1
$2
PARAMS

Возможно, вместо этого SSHEXEC будет проще вызывать этот скрипт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...