Automatiser les interactions avec des scripts shell ou bash

Peut être avez vous déjà eu besoin de simuler des réponses à des scripts shell. Par exemple lorsque vous avez un script qui demande une confirmation, un mot de passe ou tout autre intervention humaine, et que vous désirez tester le comportement du script. il existe un outil assez pratique pour le faire qui se nomme expect. Il permet d'automatiser les interactions avec des applications non-GUI (aka : graphiques). plusieurs versions sont disponibles expect-tcl8.3 ou expectk.

Expect est un langage de script pour s'interfacer avec des programmes comme FTP, Telnet, fsck, ssh et d'autres qui ne peuvent normalement pas être automatisée à partir d'un script shell. Il est donc également bon pour automatiser l'exécution de programmes sur des systèmes distants. Il s'installe par apt (debian / Ubuntu) ou yum

apt-get install expectk

Vous devez pour cela lister les questions et explicitement en donner les réponses. les wildcards sont permis afin d'être plus souple sur les questions

Voici un exemple qui répond automatiquement à un script se connectant en SSH (bouh pas bien ! :) )

expect - <<ENDSCRIPT
  spawn ssh $_user@$_server '$_command'
  match_max 100000

  expect {
       "Are you sure you want to continue connecting (yes/no)"
       {
          sleep 1
          send "yes
"
          exp_continue
       }
       "*password:*"
       {
          sleep 1
          send "PASSWORD
"
          exp_continue
      }
  }
ENDSCRIPT 

En voici un autre pour un SCP :

#!/usr/bin/expect  --
 set timeout 30
 spawn scp user@ip:~/myfile  .
 expect {
                      "password:" {
                                send "password
"
                    } "yes/no)?" {
                                send "yes
"
                                set timeout -1
                    } timeout {
                                exit
                    } eof {
                                exit
                    }
 }

Combiné avec ShUnit, il permet d'automatiser les tests facilement.

Commentaires

1. Le mercredi 21 septembre 2011, 05:42 par chi flat iron

http://www.esplanchass.com GHD,GHD Planchas,GHD Planchas Pelo
http://www.ghdespink.com GHD Planchas,GHD Planchas Pelo,GHD
http://www.ghd-lisseur-fr.net GHD Lisseur,GHD Styler
http://www.ghdspiastras.com GHD,GHD Piastra,GHD Piastre
http://www.ghdspinkfr.com GHD,GHD Lisseur,GHD Styler
http://www.ghdsglattejerns.com GHD Glattejern,GHD Fladjern,GHD
http://www.ghdsaupink.com GHD Straightener,GHD Hair Straightener
http://www.chi-flat-iron-us.com CHI Straightener,CHI Flat Iron,CHI Hair Straightener
http://www.dreheadphonesus.com Dr Dre Headphones,Beats Headphones,Beats dre,Beats by dre

La discussion continue ailleurs

URL de rétrolien : https://davidmasclet.gisgraphy.com/index.php?trackback/34

Fil des commentaires de ce billet