Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/04/2008, à 14:01

toone

soucis dans un script shell [projet de stage]

Bonjour à tou(te)s!

Alors tout d'abord je suis sur un projet de stage de 'qualification' d'une ligne pour tester si de la toip serait possible.

J'ai pour cela le logiciel 'siprtp' basé sur la bibliothèque PJSIP. Ce logiciel simule des appels voip et renvoie les résultats (gigue, latence, delai ...), il est paramètrable et s'éxecute en console (./siprtp (arguments) )

Je voudrais grapher ces résultats grâce au logiciel cacti. Il faut donc que je récupère les valeurs pour ensuite les traîter grâce à rrdtool puis cacti.

C'est ici que je fait appel à vous!

Je dois utiliser xdotool pour automatiser l'appui sur la touche 's', touche qui me donne l'affichage d'un moyennage sur les valeurs dans siprtp.

J'ai trouver comment faire. Cependant dans mon script je lances siprtp que je renvoie dans un fichier texte.
Puis je mets les commandes pour xdotool.

Quand je lance mon script, il lance siprtp et renvoie au fichier texte mais n'effectue pas les actions en dessous....

Comment faire? pouvez vous m'aider?

Voici mon 'script' :

#!/bin/sh

num="1"

./siprtp-i686-pc-linux-gnu -i 172.29.197.73 sip:1112@172.29.197.127 > /home/..../sortie.txt

while [ $num="1" ]
do
      sleep 10
      xdotool type 's'
   break
done


MErci!

Hors ligne

#2 Le 29/04/2008, à 14:07

Hoper

Re : soucis dans un script shell [projet de stage]

Il effectuera APRES siprtp smile
Je ne connais pas xdotool... et je doute que ce soit aussi simple car il faut que l'appui de la touche 's' soit dirigé vers le procesus siprtp. Or, la, je pense qu'il sera dans tous les cas plutos envoyés au shell...

En tout cas, pour lancer une commande en arriere plan et "passer à la suite" des commandes, tu peux ajouter un & à la fin de ta ligne siprtp.
(mais encore une fois je doute que ca fasse ce que tu attend).


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#3 Le 29/04/2008, à 14:09

Epehj

Re : soucis dans un script shell [projet de stage]

Salut,

j'ai jamais vraiment fait de bash, mais il me semble que " $num="1" " est pas correct.
Ca serait pas plutôt quelquechose genre while (( $num == 1 )) ?


Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie

Hors ligne

#4 Le 29/04/2008, à 14:12

toone

Re : soucis dans un script shell [projet de stage]

Oui c'est vrai je vais tester avec sa!

Sinon je vais essayer le & mais comme tu dis il faut que mon appui sur 's' soit fait DANS mon siprtp....

edit :

Avec le & déjà je passe aux commandes d'après! c'est un debut!

Dernière modification par toone (Le 29/04/2008, à 14:18)

Hors ligne

#5 Le 29/04/2008, à 19:05

babakiller85

Re : soucis dans un script shell [projet de stage]

essaye aussi

xdotool  < type 's'

ou

type 's' > xdotool

Hors ligne

#6 Le 30/04/2008, à 08:42

toone

Re : soucis dans un script shell [projet de stage]

Ceci ne fonctionne pas, le xdotool ne s'éxecute pas dans le processus de siprtp...

J'ai trouvé ceci,

après ma commande de ./siprtp... je place "<< END "

et un " END " à la fin, entre les deux, les commandes que je met sont interprétées comme il faut comme si c'etait en interactif, mais le soucis et que quand je place mon 's' comme voulu,
en sortie il éxécute bien le 's' mais il le fait en boucle comme si on laissait la touche enfoncée...


Quelqu'un connaît cette façon de faire?

Hors ligne

#7 Le 30/04/2008, à 09:45

Hoper

Re : soucis dans un script shell [projet de stage]

oui, c'est assez classique...
J'allais meme te proposer cette technique pour envoyer tes caracteres au process, le hic c'est que je ne vois pas du tout comment tu peux lui demander d'attendre entre chaque touche...
Pour le while, je n'avais rien dit parce que c'était pas la priorité, mais clairement il faut virer tout ton bordel de numéro, et si tu veux une bouvle infinie ce serait plutot un truc du genre :
while `true`
ou quelque chose comme ca...


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#8 Le 30/04/2008, à 10:01

toone

Re : soucis dans un script shell [projet de stage]

Ok j'ai mis un while [ true ]

Sinon maintenant si j'utilise "&" mes commandes en dessous s'executent (sleep et xdotool type 's') mais elle ne sont pas renvoyées au process siprtp...

Si j'utilises <<END mon 's' est bien renvoyé mais en boucle et je ne peut pas faire de sleep...

Je vais arriver à quelque chose vous pensez??

Sinon si quelqu'un à une autre solution pour grapher mes résultats.... je prends

Hors ligne

#9 Le 30/04/2008, à 19:25

:p

Re : soucis dans un script shell [projet de stage]

Bonjour,

Pour simuler une frappe de clavier j utilise xautomation

J'ai fait un programme qui appuie sur la touche aspace puis ctrl+alt+fleche droit espace ctrl+alt+fleche gauche puis espace. Et cela dans un temps compris entre 4min30 et 5min

#! /bin/bash
b=0
duree=0
while(true)
do
echo boucle num $b duree $duree
duree=$[$duree+$i+260]
let "i= $RANDOM % 30"
a=$[$i+260]
echo "sleep $a"
sleep $a
xte "key Space" 
xte "keydown Alt_L" "keydown Control_L" "key Left"
xte "key Alt_L" "key Control_L"
duree=$[$duree+1] 
sleep 1
xte "key Space"
duree=$[$duree+1]
sleep 1
xte "keydown Alt_L" "keydown Control_L" "keydown Right"
xte "key Alt_L" "key Control_L"  
xte "key Space"
done

#10 Le 05/05/2008, à 10:34

toone

Re : soucis dans un script shell [projet de stage]

Merci,

je ne sais pas si cela va beaucoup différer de xdotool... Est ce que cela va 'rentrer' dans mon processus lancé?

Hors ligne