Finalement, j'ai trouve une solution avec expect comme me l'a ete suggere par l'un d'entre vous. En fait, j'ai 2 scripts (test.sh et script.exp). Dans test.sh, je demande le mot de passe, je le recupere et ensuite je l'envoie comme argument a mon script exp et ca donne quelque chose comme ca:
SCRIPT test.sh
--------------------
#!/bin/sh -f
echo password du user:
read p1
echo OK
./script.exp $p1 fichier user@hote:/home/user/tmp"
echo FIN
exit 0
set force_conservative 0 ;# 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 fic [lindex $argv 1]
set dir [lindex $argv 2]
spawn scp -r $fic $dir
set pp [lindex $argv 0]
send -- "PROCEDURE EN COURS...\r"
expect -exact "\ruser@hote's password: "
send -- "$pp\r"
expect eof
Voila, voila. J'ai genere mon script expect avec autoexpect et ensuite je l'ai modifie a mon gout.
Merci a tous,
Phil.
# Script shell + expect
Posté par piloumon . En réponse au message SCP: sans password et surtout sans clé. Évalué à 2.
SCRIPT test.sh
--------------------
#!/bin/sh -f
echo password du user:
read p1
echo OK
./script.exp $p1 fichier user@hote:/home/user/tmp"
echo FIN
exit 0
SCRIPT script.exp
------------------------
#!/usr/bin/expect -f
set force_conservative 0 ;# 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 fic [lindex $argv 1]
set dir [lindex $argv 2]
spawn scp -r $fic $dir
set pp [lindex $argv 0]
send -- "PROCEDURE EN COURS...\r"
expect -exact "\ruser@hote's password: "
send -- "$pp\r"
expect eof
Voila, voila. J'ai genere mon script expect avec autoexpect et ensuite je l'ai modifie a mon gout.
Merci a tous,
Phil.