在shell腳本中用expect 實現 scp 文件的時候不手動輸入密碼

腳本如下:

#!/usr/bin/expect -f

set password 密碼

spawn scp 用戶名@目標機器ip:拷貝文件的路徑 存放本地文件的路徑
set timeout 300
expect "用戶名@目標機器ip's password:" #注意:這裏的“用戶名@目標機器ip” 跟上面的一致
set timeout 300
send "$password/r"
set timeout 300
send "exit/r"

expect eof

附:scp參數
-r:拷貝目錄
-c:允許壓縮

一個完整的例子

#!/usr/bin/expect -f
set password 123456
#download
spawn scp [email protected]:/root/a.wmv /home/yangyz/
set timeout 300
expect "[email protected]'s password:"
set timeout 300
send "$password/r"
set timeout 300
send "exit/r"
expect eof

#upload
spawn scp /home/yangyz/abc.sql [email protected]:/root/test.sql
set timeout 300
expect "[email protected]'s password:"
set timeout 300
send "$password/r"
set timeout 300
send "exit/r"
expect eof
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章