Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Besoin d'aide pour script expect

2 réponses
Avatar
geo cherchetout
Bonjour,

Certaines informations de qualité de ma connexion adsl ne peuvent être
obtenue que par interrogation de mon modem et je souhaiterais les recueillir
périodiquement (avec l'aide de cron) dans un fichier qui s'allongerait à
chaque consultation.

J'ai rédigé le petit script suivant :

#!/usr/bin/expect
spawn telnet 192.168.1.254
expect "Username : "
send "Administrator\r"
expect "Password : "
send "\r"
expect "{Administrator}=>"
log_file /home/geo/log/adslinfo.txt
send "adsl info expand=enabled\r"
expect "{Administrator}=>"
send "exit\r"
close

Ce script fonctionne le première fois mais le fichier de log n'est pas
complété la fois suivante et ce que dit le man à ce sujet n'est pas très
clair pour moi. Quelqu'un peut-il me donner un petit coup de pouce ?

2 réponses

Avatar
geo cherchetout
Le 16/06/2011 18:25, j'ai écrit :

Ce script fonctionne le première fois mais le fichier de log n'est pas
complété la fois suivante et ce que dit le man à ce sujet n'est pas très
clair pour moi. Quelqu'un peut-il me donner un petit coup de pouce ?



ô vieillesse ennemie, tout fonctionne parfaitement, j'oubliais de recharger
mon fichier !

Maintenant je sèche toujours sur un point : Comment introduire dans mon
fichier de log la date à chaque exécution du script ? Probablement avec la
commande timestamp mais je dois mal l'utiliser car nulle date n'apparaît
dans mon fichier.

Voici la version « estampillée » de mon script :

#!/usr/bin/expect
spawn telnet 192.168.1.254
expect "Username : "
send "Administratorr"
expect "Password : "
send "r"
expect "{Administrator}=>"
log_file -a /home/geo/log/adslinfo.txt
timestamp -format %c
send "adsl info expand=enabledr"
expect "{Administrator}=>"
send "exitr"
close
Avatar
geo cherchetout
Le 16/06/2011 19:18, j'ai écrit :

Maintenant je sèche toujours sur un point : Comment introduire dans mon
fichier de log la date à chaque exécution du script ? Probablement avec la
commande timestamp mais je dois mal l'utiliser car nulle date n'apparaît
dans mon fichier.



Après d'innombrables échecs, voici enfin un script qui fait le travail.
C'est sûrement enfantin pour les pro mais je suis plutôt content de moi. ;-)

#!/usr/bin/expect

set DATE [timestamp -format %Y%m%d%H%M%S]

spawn telnet 192.168.1.254
expect "Username : "
send "Administratorr"
expect "Password : "
send "r"
expect "{Administrator}=>"
log_file -a /home/gerard/log/adslinfo.txt
send_user nn

send_user $DATE

send_user nn
send "adsl info expand=enabledr"
expect "{Administrator}=>"
send "exitr"
close