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 :
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...
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
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...
Partager