je dispose d'un serveur sur lequel tourne une application dont je souhaite vérifier le bon fonctionnement à l'aide d'une interface réalisée avec AutoIt.
pour cela j'utilise Plink.exe localisé dans putty.
j'arrive à me connecter et récupérer des informations utiles.
je suis confronté au problème suivant :
je vérifie le bon fonctionnement de cette application en vérifiant un fichier LOG (tail -f /exploit/appli/monchemin.log) qui contient au fil de l'eau toutes l'activité)
avec AutoIt j'arrive à lire le contenu de ce fichier log en interrompant moi même le service ( Fermeture manuelle de la fenêtre DOS lorsque je suis dans le mode : @SW_SHOW ( commande Run).
je cherche donc à fermer automatiquement le PID pour récupérer le stdout. l'objectif sera de réaliser cette action de façon récursive pour s'assurer que les sorties évoluent ( preuve que l'appli n'est pas freeze).
#Include <GuiButton.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <AutoItConstants.au3>
$PlinkDir = "c:\putty"
$serveur = "10.10.10.10"
$login = "login"
$Password = "password "
$iPID = Run(@ComSpec & " /c " & $PlinkDir & "\plink.exe " & $login & "@" & $serveur & " " & "-pw "& $Password & " tail -f /exploit/log/fichier.log ", "", @SW_SHOW,$STDERR_CHILD + $STDOUT_CHILD + $STDIN_CHILD)
$sOutput = ""
ProcessWaitClose($iPID)
;@@@@@@@@@@
;j'ai essayé de remplacer la commande précédente par :
;Sleep (1000) spécification d'un temps d'attente avant de clore le PID
;ProcessClose($iPID)
;@@@@@@@@@@
$sOutput = StdoutRead($iPID)
MsgBox(0, "", "$Sortie = " & $sOutput)
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <AutoItConstants.au3>
$PlinkDir = "c:\putty"
$serveur = "10.10.10.10"
$login = "login"
$Password = "password "
$iPID = Run(@ComSpec & " /c " & $PlinkDir & "\plink.exe " & $login & "@" & $serveur & " " & "-pw "& $Password & " tail -f /exploit/log/fichier.log ", "", @SW_SHOW,$STDERR_CHILD + $STDOUT_CHILD + $STDIN_CHILD)
$sOutput = ""
ProcessWaitClose($iPID)
;@@@@@@@@@@
;j'ai essayé de remplacer la commande précédente par :
;Sleep (1000) spécification d'un temps d'attente avant de clore le PID
;ProcessClose($iPID)
;@@@@@@@@@@
$sOutput = StdoutRead($iPID)
MsgBox(0, "", "$Sortie = " & $sOutput)
Mon objectif final sera de récupérer à chaque occurence chacune des dernières lignes du fichier LOG et de la comparer à celle sauvegardée pour l'occurence précédente.
je vous remercie par avance et vous souhaite un agréable week-end.