1. 程式人生 > >expect(spawn) 自動化git提交和scp拷貝---centos(linux)

expect(spawn) 自動化git提交和scp拷貝---centos(linux)

在進行SCP檔案拷貝中,往往需要進行使用者密碼的輸入,即使用者互動。若採用自動化指令碼的方式進行,則可用以下方式

#!/usr/bin/expect

# 設定引數

set src [lindex $argv 0]
set dest [lindex $argv 1]
set password [lindex $argv 2]
set appId [lindex $argv 3]

# 進行拷貝,採用祕鑰驗證(需要輸入祕鑰的密碼 scp的i引數可指定)方式進行

set timeout 2000
spawn scp -i /home/hadoop/.ssh/id_rsa_soa -r $src $dest
expect {
"(yes/no)

" {send "yes\r\n";exp_continue} "*passphrase*:" {send "祕鑰的密碼\r\n";exp_continue}
"app*:" {send "$password\r\n"}
}
expect eof

在進行git的自動化提交程式碼可用

#!/usr/bin/expect

cd dir
exec git add .
exec git commit -m "update by yourName"
spawn git push
expect {
"Password*" {send "password\r\n"}
}
expect eof