#!/usr/bin/expect ### 新版雙層跳板機版本 ### # 設置15秒超時時間 set timeout 15 # 設置參數名稱 set jumpusr [lindex $argv 0] set jumphost [lindex $argv 1] set jumppassword [lindex $argv 2] set jumpid [lindex $argv 3] set jumpcmd [lindex $argv 4] set host [lindex $argv 5] set port [lindex $argv 6] set password [lindex $argv 7] # ssh 第一層跳板機 輸入密碼 catch {spawn ssh $jumpusr@$jumphost} expect "*assword:*" {send "$jumppassword\r"} # 選擇第二層跳板機 並選擇手動輸入命令 expect "請選擇目標資產:*" {send "$jumpid\r"} expect "請輸入命令或服務器ID:*" {send "$jumpcmd\r"} # 輸入目標ip和port expect "IP:*" {send "$host\r"} expect "Port:*" {send "$port\r"} # 輸入目標ip的密碼 expect "*assword:*" {send "$password\r"} # 保持交互狀態,並把控制權交給控制檯 expect "*$host*"; interact # demo # houcaiyun fort.xxxx.co password1 1 m 目標ip port 目標ip的密碼