Non ce n'est pas un post en anglais mais un petit billet à propos de ce magnifique petit interpréteur qui est expect !
Pour tout ceux qui cherchent le moyen de scripter des actions à effectuer de manière distante via ssh ET que vous ne pouvez pas utiliser un système d'authentification par clé (bien pratique autrement), voilà le petit bout de script qui va vous sauvez des heures de galères :
#!/usr/bin/expect -f
set password [lrange $argv 0 0]
set username [lrange $argv 1 1]
set ipaddr [lrange $argv 2 2]
set scriptname [lrange $argv 3 3]
set arg1 [lrange $argv 4 4]
set timeout -1
spawn ssh -o StrictHostKeyChecking=no $username@$ipaddr $scriptname $arg1
match_max 100000
expect "?assword:"
send -- "$password\r"
//send blank line (\r) to make sure we get back to gui
send -- "\r"
expect eof
Pour le lancer, rien de complexe :
./monscript.exp password user 10.0.0.1 cp from to argument here
PS : Si vous voulez utiliser sshfs, vous pouvez simplement utiliser stdin (pas possible avec ssh, il attends son password depuis le tty).
echo $pwd | sshfs -o StrictHostKeyChecking=no -o password_stdin root@$target:/ /mnt/mountpoint/

/var/www/flickr