- 论坛徽章:
- 3
|
跳转脚本如下$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
复制代码 其中机器列表文件内容如下($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
复制代码 在跳板机上, 可以用IP最后一位(我们提到哪台服务器一般讲IP的最后一位)或者你给机器起的名字来进行跳转
go 11或者go code即可到11.11.111.11
如果IP的最后一位有相同的, 会都列出来让你进行选择, 每个机器还有详细提示.
直接输入go会全部列出.
由于禁止自动登录, 所以就没有什么expect什么脚本了.
有用得上的同学可以拿去改改~~~:wink:
|
|