使用scp傳輸文件(從服務器A傳文件到服務器B)
#!/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
使用scp傳輸文件(從服務器B下載文件到服務器A)
#!/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