- 論壇徽章:
- 3
|
跳轉(zhuǎn)腳本如下$HOME/bin/go- #!/bin/bash
- file="$HOME/bin/servers"
- declare -a des
- declare -a key
- declare -a cmd
- declare i
- i=0
- while read a b c
- do
- if [ "$a" != "" ]; then
- n=`echo $a | awk -F. '{print $4}'`
- k=$b
- if [ "$1" == "" -o "$n" == "$1" -o "$k" == "$1" ]; then
- printf "\e[1;31m %-6d\e[0m %-32s %-20s %-s\n" $i "$a" "$b" "$c"
- des[$i]=$c
- key[$i]=$b
- cmd[$i]=$a
- ((i++))
- fi
- fi
- done < $file
- if [ $i -eq 0 ]; then
- printf "\e[1;31mNo match for %s\e[0m\n" "$1"
- echo ""
- $0
- elif [ $i -eq 1 ]; then
- printf " %-32s %-20s %-s\n" "${cmd[$n]}" "${key[$n]}" "${des[$n]}"
- ssh -o"KeepAlive yes" ${cmd[0]}
- else
- echo ""
- read -p "Select a server to connect: " n
- #printf " %-32s %-20s %-s\n" "${cmd[$n]}" "${key[$n]}" "${des[$n]}"
- bnum=`expr match "$n" "[0-9][0-9]*$"`
- if [[ $bnum -lt 1 ]]; then
- echo -e "\e[1;31m[ERROR]\e[0mYou should select the sequence number in red above~"
- else
- if [[ $n -ge $i ]]; then
- echo -e "\e[1;31m[ERROR]\e[0mYou should select the sequence number in red above~"
- else
- ssh -o"KeepAlive yes" ${cmd[$n]}
- fi
- fi
- fi
復(fù)制代碼 其中機(jī)器列表文件內(nèi)容如下($HOME/bin/servers)
- myname@11.11.111.11 code Code Compile Server
- nobody@10.100.1.100 web Web Server
- root@12.122.122.100 dev_env Dev Server
- root@13.133.133.133 online_svr Online Server
復(fù)制代碼 在跳板機(jī)上, 可以用IP最后一位(我們提到哪臺(tái)服務(wù)器一般講IP的最后一位)或者你給機(jī)器起的名字來進(jìn)行跳轉(zhuǎn)
go 11或者go code即可到11.11.111.11
如果IP的最后一位有相同的, 會(huì)都列出來讓你進(jìn)行選擇, 每個(gè)機(jī)器還有詳細(xì)提示.
直接輸入go會(huì)全部列出.
由于禁止自動(dòng)登錄, 所以就沒有什么expect什么腳本了.
有用得上的同學(xué)可以拿去改改~~~:wink:
|
|