J’utilise le plugin Script et je crée des scripts PHP qui se connectent en SSH a certains équipements du réseau local. Je souhaite éteindre ou redémarrer un équipement (c’est un Firewall). Lorsque la ligne de commande est envoyée en SSH à l’équipement, celui-ci me demande une confirmation interactive « êtes vous bien sur … nianiania » et je dois confirmer au clavier par « yes/no ».
La question : comment faire via un script pour répondre a cette question « yes/no » interactive ? La commande sur l’équipement ne supporte pas d’option pour forcer l’éxécution sans confirmation interactive : pas de « shutdown -force » ou option similaire.
Mon script utilise pour l’instant les fonctions PHP ssh2_connect, ssh2_exec.
Cela ne permet pas de répondre de manière interactive a la commande en cours.
Suite a cette réponse, je pense que j’ai peut-être mal expliqué mon probleme.
En plus de l’explication initiale, j’ajoute ces informations complémentaires :
J’execute un script créé via le plugin script
C’est un script PHP qui se connecte en SSH a un équipement distant
Une fois connecté, je demande l’exécution de la commande ‹ shutdown ›
L’équipement me réponds « êtes vous sur de vouloir eteindre l’équipement ? » et je dois répondre par « yes » ou « no »
Via la session SSH ouverte avec PHP, je ne sais pas répondre par « yes ». Mon équipement ne redémarre donc pas. Logique.
J’anticipe certaines questions :
Si je sais envoyer la commande « shutdown » a mon équipement, alors je sais également envoyer une commande « yes » de la meme facon. Evidemment ca ne marche pas. Il faut rester dans le flux de la commande SSH shutdown et y apporter une entrée complémentaire. Ca n’a rien a voir avec envoyer une commande « shutdown » puis envoyer une commande « yes ».
Salut,
J’ai pas fait dans ce sens de mon côté, tu pourrais par exemple faire un bash sur ton FW et à distance l’exécuter.
Pour moi ça parait plus simple et tu géreras en local l’ensemble des commandes que tu veux faire.
Autre solution, si ton FW à certains trucs en API, tu peux le faire avec. Exemple, sur Fortinet c’est possible.