Bonjour,
J'ai fait un script pour récupérer le nombre de lignes d'un fichier sur un serveur distant.
J'utilise ssh, appelé dans un script exp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/expect -f
set force_conservative 1  ;# set to 1 to force conservative mode even if
                          ;# script wasn't run conservatively originally
if {$force_conservative} {
        set send_slow {1 .1}
        proc send {ignore arg} {
                sleep .1
                exp_send -s -- $arg
        }
}
 
 
#set timeout 5
match_max 100000
 
#declaration de 4 parametres
set query_file [lindex $argv 0]
set passw "user"
set user "passwd"
set host "192.168.100.50"
 
 
proc check_size {passw query_file user host} {
        send -- "ssh $user@$host \"wc -l $query_file\"\r"
        expect {
                "*password:*" {
                        send -- "$passw\r"
                        puts $expect_out(buffer)
                }
        }
}
exp_internal 1
log_user 1
spawn $env(SHELL)
 
check_size $passw $query_file $user $host
Le problème est qu'en sortie de ce script .exp je n'ai pas le nombre de lignes, je n'ai même rien du tout...
pourtant quand je lance la commande ssh "user"@"host" "wc -l ...", il me demande le password, et après j'ai bien le nombre de lignes.
quelqu'un a une idée?

Merci

PS :Je ne peux pas faire de SSH avec authentification par clés RSA, donc pas vraiment d'autre choix que expect...