expect-自动交互脚本
目录
scp 多个主机并填写密码
#!/usr/bin/expect
set filename [lindex $argv 0]
set dir_path [lindex $argv 1]
set IP_NOS_1 "192.168.122.11"
set IP_NOS_2 "192.168.122.12"
set IP_NOS_3 "192.168.122.13"
set IP_NOS_4 "192.168.122.14"
set IP_NOS_5 "192.168.122.15"
set username "root"
set passwd "root"
set timeout 200
if { $argc!=2 } {
puts "WARNING ! srcipt needs two parameter !"
puts " Usage: (parameter 1: filename) filename you want to transfer"
puts " Usage: (parameter 2: path) path you want to save to where."
puts "this scripts will cp file into 5 kvm!"
exit 0
}
for {set i 1} {$i < 6} {incr i} {
switch $i {
1 {set ip $IP_NOS_1}
3 {set ip $IP_NOS_3}
4 {set ip $IP_NOS_4}
5 {set ip $IP_NOS_5}
}
puts "#---------------------copy file to kvm$i------------------#"
spawn scp ./$filename $username@$ip:$dir_path
expect {
"(yes/no)?" { send "yes"; exp_continue }
"assword:" { send "$passwd\r" }
}
expect "100%"
sleep 1
}