- 論壇徽章:
- 0
|
我自己寫了一個簡單的自動執(zhí)行scp拷貝程序,程序的進(jìn)程基本是這樣的。首先,登陸到206主機,206主機從202主機上拷貝一份文件到本機。但是執(zhí)行時出現(xiàn)下面的問題:
ssh: connect to host 192.168.0.202 port 22: Connection refused
expect: spawn id exp7 not open
while executing
"expect -nobrace -re ~\]# {
send "\r"
} timeout {
exit 1
}"
invoked from within
"expect {
-re "$cmd_prompt"
{
send "\r"
}
timeout
{
exit 1
}
}"
(file "auto_copy_scp.exp" line 82)
下面為全部的程序:
#!/usr/bin/expect -f
set loginuser "root"
#set ipaddr "192.168.1.104"
set ip202 "192.168.0.202"
set ip206 "192.168.0.206"
set passwd206 "123456"
set passwd202 "123456"
#set loginpass "123456"
#set newpass "654321"
set cmd_prompt "~]#"
spawn ssh $loginuser@$ip206
set timeout 300
expect {
-re "Are you sure you want to continue connecting (yes/no)?"
{
send "yes\r"
}
-re "password:"
{
send "$passwd206\r"
}
-re "Permission denied, please try again."
{
exit
}
-re "Connection refused"
{
exit
}
timeout
{
exit
}
eof
{
exit
}
}
expect {
-re "password:"
{
send "$passwd206\r"
}
-re "$cmd_prompt"
{
send "\r"
}
}
#------------change the password!
#spawn passwd
spawn scp $loginuser@$ip202:/root/Win2003-32bit-sp2.iso /root
expect {
-re "Are you sure you want to continue connecting (yes/no)?"
{
send "yes\r"
}
-re "password:"
{
send "$passwd202\r"
}
timeout
{
exit 1
}
}
#set timeout 30000
expect {
-re "$cmd_prompt"
{
send "\r"
}
timeout
{
exit 1
}
}
#expect eof
exit
請大俠們指點指點。謝謝! |
|