expect 指令碼名 引數
指令碼如下:
#!/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/[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
//命令列引數引用
# set variables
set password [lrange $argv00
]set ipaddr [lrange $argv11
]set scriptname [lrange $argv22
]set arg1 [lrange $argv33
]set timeout -1
//函式使用
proc functionname {
......
呼叫子函式非常簡單
functionname $param1 $param2
SCP命令設定無密碼
今天在jenkins上要寫乙個job,需要copy檔案到remote端的乙個機器上,想到經常使用的scp命令。但是使用這個命令雖然很方便,但是需要輸入密碼。如何將這個命令使用到指令碼中去呢?檢視google,有很多解決方法,其中就有一種就是在兩個host之間通過秘鈅來建立安全通訊。過程如下 ssh ...
rsync 無密碼傳輸檔案
最近機器遷移,需要備份檔案,但各個機器間不能穿梭,即無法通過scp來傳輸檔案,在運維的建議下,選用了rsync作為傳輸的工具。預設情況ubuntu安裝了rsync服務,但在 etc下沒有配置檔案,一般情況可以copy示例檔案到 etc下。配置無帳號登入的示例如下,需要主要高亮的部分。mail com...
scp命令 傳輸
從遠處複製檔案到本地目錄 scp root 10.10.10.10 opt soft nginx 0.5.38.tar.gz opt soft 從遠處複製到本地 scp r root 10.10.10.10 opt soft mongodb opt soft 上傳本地檔案到遠端機器指定目錄 scp ...