[oracle@oaprimary shell]$ cat expect.sh
while read line
douser=`echo $line | awk ''`
ip=`echo $line |awk ''`
passwd=`echo $line | awk ''`
#把shell中的$user $ip $passwd引數傳遞給expect指令碼
expect expect2.exp $user $ip $passwd
done < name.tmp
[oracle@oaprimary shell]$ cat expect2.exp
#!/usr/bin/expect
# 設定超時時間為 60 秒
# set timeout 60
# 設定要登入的主機 ip 位址
# set host=$host
# 設定以什麼名字的使用者登入
# set ip=$ip
# 設定使用者名稱的登入密碼
# set passwd=$passwd
#把shell的引數傳遞給expect指令碼
set user [lindex $argv 0]
set ip [lindex $argv 1]
set passwd [lindex $argv 2]
#spawn 乙個 ssh 登入程序
spawn ssh $user@$ip
# 等待響應,第一次登入往往會提示是否永久儲存 rsa 到本機的 know hosts 列表中;等到回答後,在提示輸出密碼;之後就直接提示輸入密碼
expect
"assword:" {
利用expect互動實現對主機批量建立SSH信任
ssh免密驗證,shell自動設定 echo bin sh etc init.d functions f usr bin expect 若沒expect則安裝 0 安裝失敗則退出 pub whoami ssh id dsa.pub 公鑰路徑 f pub 若沒公鑰則生成 expect自動互動 func...
EXPECT 指令碼 批量 遠端互動
在shell自動部署專案中對自動部署免去使用者互動很痛苦 expect eof 這個一定要加,與spawn對應表示捕獲終端輸出資訊終止,類似於if.endif expect指令碼必須以interact或expect eof結束,執行自動化任務通常expect eof就夠了。設定expect永不超時。...
Shell之批量監控主機磁碟使用率
1 本地磁碟監控 use rate list df h awk dev 結果 dev sda1 10 for use rate in use rate list do part name use rate if use rate ge 80 then echo warning part name p...