免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5408 | 回复: 1
打印 上一主题 下一主题

[学习共享] 发一个简单的跳板机常用脚本~~~ [复制链接]

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:032015年亚洲杯之中国
日期:2015-04-22 15:52:45
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-14 16:35 |只看该作者 |倒序浏览
跳转脚本如下$HOME/bin/go
  1. #!/bin/bash
  2. file="$HOME/bin/servers"

  3. declare -a des
  4. declare -a key
  5. declare -a cmd

  6. declare i

  7. i=0

  8. while read a b c
  9. do
  10.     if [ "$a" != "" ]; then
  11.         n=`echo $a | awk -F. '{print $4}'`
  12.         k=$b

  13.         if [ "$1" == "" -o "$n" == "$1" -o "$k" == "$1" ]; then
  14.             printf "\e[1;31m %-6d\e[0m %-32s  %-20s %-s\n" $i "$a" "$b" "$c"
  15.             des[$i]=$c
  16.             key[$i]=$b
  17.             cmd[$i]=$a
  18.             ((i++))
  19.         fi  
  20.     fi  
  21. done < $file

  22. if [ $i -eq 0 ]; then
  23.     printf "\e[1;31mNo match for %s\e[0m\n" "$1"
  24.     echo ""
  25.     $0  
  26. elif [ $i -eq 1 ]; then
  27.     printf "        %-32s  %-20s %-s\n" "${cmd[$n]}" "${key[$n]}" "${des[$n]}"
  28.     ssh -o"KeepAlive yes" ${cmd[0]}
  29. else
  30.     echo ""
  31.     read -p "Select a server to connect: " n
  32.     #printf "        %-32s  %-20s %-s\n" "${cmd[$n]}" "${key[$n]}" "${des[$n]}"
  33.     bnum=`expr match "$n" "[0-9][0-9]*$"`
  34.     if [[ $bnum -lt 1 ]]; then
  35.         echo -e "\e[1;31m[ERROR]\e[0mYou should select the sequence number in red above~"
  36.     else
  37.         if [[ $n -ge $i ]]; then
  38.             echo -e "\e[1;31m[ERROR]\e[0mYou should select the sequence number in red above~"
  39.         else
  40.             ssh -o"KeepAlive yes" ${cmd[$n]}
  41.         fi
  42.     fi
  43. fi
复制代码
其中机器列表文件内容如下($HOME/bin/servers)

  1. myname@11.11.111.11          code            Code Compile Server
  2. nobody@10.100.1.100          web             Web Server
  3. root@12.122.122.100          dev_env         Dev Server
  4. root@13.133.133.133          online_svr      Online Server
复制代码
在跳板机上, 可以用IP最后一位(我们提到哪台服务器一般讲IP的最后一位)或者你给机器起的名字来进行跳转
go 11或者go code即可到11.11.111.11
如果IP的最后一位有相同的, 会都列出来让你进行选择, 每个机器还有详细提示.
直接输入go会全部列出.

由于禁止自动登录, 所以就没有什么expect什么脚本了.

有用得上的同学可以拿去改改~~~:wink:

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2013-08-15 12:10 |只看该作者
bash 里有个内置的select 命令,你可以试一下,可以省很多代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP