#!/usr/bin/expect
set timeout -1
spawn scp A_path B_username@B_IP:B_path
expect {
"password" {send "$B_password\r";}
"yes/no" {send "yes\r";exp_continue}
}
expect eof
exi
#!/usr/bin/expect
set timeout -1
spawn scp B_username@B_IP:B_path A_path
expect {
"password" {send "$B_password\r";}
"yes/no" {send "yes\r";exp_continue}
}
expect eof
exit
set timeout -1 表示永不超时 假如输出包含yes/no,则表示是第一次登入,需要输入yes来添加信任。 exp_continue表示继续此循环
脚本没加执行权限 bash **.sh
这样执行会报以下错误:
scp.sh: line 3: spawn: command not found
couldn't read file "{": no such file or directory
scp.sh: line 5: syntax error near unexpected token `}'
scp.sh: line 5: ` "password" {send "xxxxxxxxxx\r";}'
正确执行:
chmod +x **.sh
./**.sh
脚本免密登陆内网
#!/usr/bin/expect -f
spawn ssh username@IP
expect "password:"
send "输入密码"
interact