• # Script shell + expect

    Posté par . En réponse au message SCP: sans password et surtout sans clé. Évalué à 2.

    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

    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.