使用expect命令批處理
使用expect
背景
由於需要將一個文件,遠程拷貝到一批linux設備裏,並需要在登錄後,進行後續權限修改等處理。故而決定寫一個批處理腳本
experct命令使用示例
一段簡單示例,主要是用scp和ssh登錄,下面爲代碼片
.
// An highlighted block
#!/usr/bin/expect -f
#獲取外部輸入ip
set machineip [lindex $argv 0 ]
#KEYPATH=/home/me/somefile.txt
#使用遠程scp指令
spawn scp somefile.txt me@$machineip:/home/me/
expect "Password*"
send "123456\r"
#登錄遠程設備
spawn ssh me@$machineip
expect "Password*"
send "123456\r"
#後續處理
expect "]*"
send "sudo chown me somefile.txt\r"
expect "]*"
send "sudo chgrp users somefile.txt\r"
expect "]*"
send "sudo rm /home/me/key123.txt\r"
expect "]*"
#interact
expect eof