J'utilise la tâche ant SSHEXEC pour exécuter un script SSH sur une machine Linux distante.Répondre aux invites shell de la tâche Ant SSH (SSHEXEC)
Cela a fonctionné correctement jusqu'à ce que j'essaie d'appeler un script ksh qui invite l'utilisateur à entrer. Le script change l'utilisateur actuel (comme su). Il invite l'utilisateur à modifier_request_id et à modifier_request_reason. Donc, en utilisant cette commande normalement dans une coquille ressemblerait à ceci:
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>
Mais quand je lance ces commandes de SSHEXEC, il arrive à la première invite « S'il vous plaît saisir les changements demandent numéro pour ce faire: » et arrête. Même si je redirige une réponse à cette invite via SSHEXEC, elle reste bloquée ici.
Malheureusement, nous n'avons pas accès pour modifier ou copier le script shell change_user.
Je me demandais s'il y avait un moyen d'utiliser SSHEXEC qui enverrait des réponses rapides avec la commande.
Toute aide serait appréciée.
Merci William. Votre solution semble idéale, cependant quand je l'ai essayée, elle s'est cassée pendant que le manuscrit que je cours change l'utilisateur courant, donc il commet des erreurs avant qu'il finisse. En dehors de ce problème, votre solution me permet en effet de répondre aux invites de script. Je suppose que c'est maintenant une question de contourner ce problème d'utilisateur de changement! À votre santé. – Ben
Vous pouvez configurer sudo pour qu'il vous permette d'exécuter cette commande en tant qu'un autre utilisateur - par ex. préfixez/path/to/change_request_cmd avec sudo -u otheruser, et configurez/etc/sudoers pour autoriser cela sans mot de passe. –