使用expect指令碼SCP拷貝檔案

germany006發表於2013-07-18
使用expect指令碼SCP拷貝檔案,無需輸入密碼,無需使用金鑰對


#!/usr/bin/expect -f
foreach ip {
192.168.10.10} {
spawn scp $ip:/home/zwl_test/my_portal.sh /home/zwl_test/
set timeout 300
expect {
#"continue connecting" {send "yes\r";exp_continue}
"Password:" {send "xxxxxxxx\n"}
}
expect eof

}



注意事項(CENTOS7.6測試也沒問題)yum -y install expect

vi expect.sh

#!/usr/bin/expect -f

foreach ip {                                                        --這裡foreach ip {  中間都是有空格的,然後必須換行

192.168.1.100} {                                                --這裡兩個} { 之間必須要有空格,之後必須換行,否則會報錯

spawn scp /root/install.log $ip:/BAK/bak/

expect {                                                              --這裡必須換行,否則無法執行指令碼成功

"password:" {send "******\n"}

}

expect eof

}


OK,以上的都按我寫的格式來都寫好之後, 在執行指令碼的時候,必須./expect.sh這樣執行,執行前chmod u+x expect.sh

千萬不能用sh -x 或者sh 這種,這樣執行不了的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-766612/,如需轉載,請註明出處,否則將追究法律責任。

相關文章