[..] Attendre execution script unix

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
sacan
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 01 mars 2010 11:04
Status : Hors ligne

[..] Attendre execution script unix

#1

Message par sacan »

Bonjour,

Je viens de créer un code permettant de lancer un script unix via la console msdos en telenet :

Code : Tout sélectionner

Run("cmd.exe")
WinWaitActive("C:\WINNT\system32\cmd.exe")
Send("telnet serveur")
Send("{ENTER}")
Send("user")
Send("{ENTER}")
Sleep(2000)
Send("password")
Send("{ENTER}")
Sleep(2000)
Send("./script_unix.sh")
Send("{ENTER}")
Sleep(2000)
Send("exit")
Send("{ENTER}")
MsgBox(64, "Information", "Insertion effectué")
Ce que je souhaite c'est pouvoir attendre l'execution du script afin de pouvoir envoyer les commande d'exit.

Merci de votre aide.
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..] Attendre execution script unix

#2

Message par peuchere83 »

Bonjour,

Tu pourrais faire en sorte que ton script unix créé un fichier texte lorsqu'il a fini son traitement.
Ainsi tu attends la présence de ce fichier avant de pouvoir continuer ton programme.

Voila pour l'idée, bon courage.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
jajar
Niveau 4
Niveau 4
Messages : 59
Enregistré le : sam. 03 avr. 2010 15:20
Status : Hors ligne

Re: [..] Attendre execution script unix

#3

Message par jajar »

Je ne sais pas si il existe une fonction pour ce genre de tache.

Mais peuchere83 à raison, tu fais une condition puis tu supprime le log.txt une fois exit terminé.
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] Attendre execution script unix

#4

Message par GhostLine »

C'est plus du coté du script Unix qu'il faut que tu regardes, je pense.

Quid de faire comme suit :

Send("./script_unix.sh&&exit")
Send("{ENTER}")

Ce qui doit faire s'exécuter les commandes les unes après les autres (voir ici).

Après, il faut tester pour vérifier si ça marche ou pas.

Sinon, il reste effectivement la solution de créer un petit fichier de sortie à la fin de ton script .sh et d'en contrôler la présence de manière périodique.
jajar
Niveau 4
Niveau 4
Messages : 59
Enregistré le : sam. 03 avr. 2010 15:20
Status : Hors ligne

Re: [..] Attendre execution script unix

#5

Message par jajar »

oui, mais ce qu'il cherche c'est de le coder en autoit ce serait plus pratique et il y a moins de risque d'erreur...

si il existe certaines udf qui font attendre le navigateur ie ou firefox pour que le script ce termine correctement, ca doit exister pour d'autres applications.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Attendre execution script unix

#6

Message par Tlem »

Eventuellement, vous pourriez utiliser StdinWrite et StdoutRead pour recevoir et envoyer les ordres à la console. ;)
http://www.autoit.fr/autoit3/docs/funct ... nWrite.htm
http://www.autoit.fr/autoit3/docs/funct ... utRead.htm
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jajar
Niveau 4
Niveau 4
Messages : 59
Enregistré le : sam. 03 avr. 2010 15:20
Status : Hors ligne

Re: [..] Attendre execution script unix

#7

Message par jajar »

Faudrait coder une UDF pour ce type de problème, car c'est vrai que ca peut être utile.
sacan
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 01 mars 2010 11:04
Status : Hors ligne

Re: [..] Attendre execution script unix

#8

Message par sacan »

Merci pour vos réponses.

Je vais y travailler la semaine prochaine car bcp de travail aujourd'hui.

Je vous tiens au courant.

Cordialement,
sacan
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 01 mars 2010 11:04
Status : Hors ligne

Re: [..] Attendre execution script unix

#9

Message par sacan »

Bonjour,

Je viens d'essayer la méthode de du && comme suggéré par GhostLine, mais ça ne fonctionne pas.

Je suis donc passé par une boucle qui attend la création du fichier.

Code : Tout sélectionner

Send("./script.sh")
Send("{ENTER}")
While 1
    If FileExists("terminer.txt") then ExitLoop
WEnd
Un point positif est que je vois le déroulement du script dans ma fenêtre, mais il ne veut pas sortir de la boucle.

Est-ce que ma syntaxe est correcte ?

Merci de votre aide
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Attendre execution script unix

#10

Message par Tlem »

Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
sacan
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 01 mars 2010 11:04
Status : Hors ligne

Re: [..] Attendre execution script unix

#11

Message par sacan »

J'ai lu pas mal de sujet sur ces fonctions mais elles ne pourra pa être utilisé dans mon service.

Est-ce que le while est correcte car je pense que le pb ce situe ici car le script se bloque au passage de la boucle.
sacan
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 01 mars 2010 11:04
Status : Hors ligne

Re: [..] Attendre execution script unix

#12

Message par sacan »

Je viens de faire des test.

Code : Tout sélectionner

If FileExists("/**/terminer.txt") then Send("rm terminer.txt") EndIf

Code : Tout sélectionner

while 1
If FileExists("/**/terminer.txt") Then
    MsgBox(64, "Information", "Fichier présent")
Else
    MsgBox(64, "Information", "Fichier pas présent")
EndIf
Sleep(2000)
WEnd
J'ai essayé les deux code précedent et il ne trouve pas le fichier. Est-ce que la fonction FileExists fonctionne bien sous unix ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Attendre execution script unix

#13

Message par Tlem »

sacan a écrit :J'ai lu pas mal de sujet sur ces fonctions mais elles ne pourra pa être utilisé dans mon service
Ha !!! :shock:
Vous pouvez faire un script AutoIt, mais pas utiliser des fonctions internes à celui-ci. :shock:
Je comprend pas tout là ...
sacan a écrit :Est-ce que la fonction FileExists fonctionne bien sous unix ?
:lol: :lol: :lol: :lol:
AutoIt = Windows donc AutoIt <> Unix.
Si vous sous entendez dans Wine, alors précisez le ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
GMib
Niveau 4
Niveau 4
Messages : 57
Enregistré le : sam. 23 janv. 2010 12:39
Status : Hors ligne

Re: [..] Attendre execution script unix

#14

Message par GMib »

Je croi qu'il parle du stdinwrite et stdinread qui déconne avec telnet, j'ai essayé de m'en servir et le process se ferme quand on lance le telnet.
j'ai peu être pas su le faire.

sinon une autre piste a explorer : utiliser un autre logiciel pour telnet : putty
il est utilisable en ligne de commande.
http://marc.terrier.free.fr/docputty/Ch ... ng-cmdline
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Attendre execution script unix

#15

Message par Tlem »

Et pourquoi ne pas utiliser les fonctions interne à AutoIt ?
► Afficher le texte
C'est un code écrit rapidement, il demande à être amélioré en fonction des besoins. Selon le type de données à récupérer je pense que cela devrait faire l'affaire.
*** Attention toutefois aux caractères renvoyés ? car en Telnet sur un Linux, certains ne sont pas standard pour Windows ...
Donc il faut interpréter. ;)
Mais d'après ce que sacan a écrit dans son premier message, AMHA cela devrait très largement suffire sans se prendre la tête ... :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
sacan
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 01 mars 2010 11:04
Status : Hors ligne

Re: [..] Attendre execution script unix

#16

Message par sacan »

Bonjour,

Merci pour votre script. Je viens de lancer en modifiant les variables pour que cela corresponde à mon besoin. Le problème c'est que rien ne se passe et rien n'apparait. Je suis sous win 2000, est-ce qu'il faut que je mettre à jour qq chose, car visiblement il n'y a aucune action en utilisant la commande TCPStartUp().

Cdlt,
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Attendre execution script unix

#17

Message par Tlem »

Quelle version de AutoIt utilisez-vous ?
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
sacan
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 01 mars 2010 11:04
Status : Hors ligne

Re: [..] Attendre execution script unix

#18

Message par sacan »

La version v3.3.4.0.

Normalement ca devrait fonctionner...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Attendre execution script unix

#19

Message par Tlem »

Je viens de tester le script sur un Windows 2000 Pro dans un machine virtuelle et tout fonctionne.
Sans doute vous manque t-il un paramètre (l'IP peut être) ?

Dans tous les cas le test du script est concluant sur un Windows 2000 avec AutoIt version 3.3.6.0.
A vous de voir d'où vient le problème.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre