直接看改进版2.0

切换服务器,免密登录
vi changeServer.sh

#!/bin/bash
#authe by wangxp
export IFCFG=/etc/sysconfig/network-scripts/ifcfg-ens33 function checkip(){
IPADDR=`ip address|grep 192.168.106|awk '{print $2}'|cut -d/ -f1`
#IP地址必须为全数字
echo $IPADDR|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" > /dev/null;
if [ $? -ne 0 ];then
echo "输入ip非法!"
exit
fi
if [[ $1 == $IPADDR ]];then
echo "已经登录目标服务器,请勿重复登录!"
exit 1
fi
} #免密登录。先ssh-keygen -t rsa 生产公私钥,然后ssh-copy-id把公钥复制到远程机器中
function except_passwd(){
if [[ ! -f /root/.ssh/id_rsa || ! -f /root/.ssh/id_rsa.pub ]]
then
echo "ssh-keygen -t rsa"
ssh-keygen -t rsa
fi
/usr/bin/ssh-copy-id root@$1 > /dev/null 2>&1
ssh root@$1
} PS3="选择你要登录的服务器: "
select i in "云诊所-主应用" "云MIS-主应用" "云诊所-主数据库" "云诊所-备数据库" "云MIS-主数据库" "云MIS-备数据库" "图片服务器"
do
case $i in
"云诊所-主应用")
IPTAR=192.168.106.6
checkip $IPTAR
echo -e "登录...云诊所-主应用:$IPTAR"
except_passwd $IPTAR
break
;;
"云MIS-主应用")
IPTAR=192.168.106.7
checkip $IPTAR
echo -e "登录...云MIS-主应用:$IPTAR"
except_passwd $IPTAR
break
;;
"云MIS-主数据库")
IPTAR=192.168.106.1
checkip $IPTAR
echo -e "登录...云MIS-主数据库:$IPTAR"
except_passwd $IPTAR
break
;;
"云诊所-主数据库")
IPTAR=192.168.106.2
checkip $IPTAR
echo -e "登录...云诊所-主数据库:$IPTAR"
except_passwd 192.168.106.2
break
;;
"云MIS-备数据库")
IPTAR=192.168.106.3
checkip $IPTAR
echo -e "登录...云MIS-备数据库:$IPTAR"
except_passwd $IPTAR
break
;;
"云诊所-备数据库")
IPTAR=192.168.106.4
checkip $IPTAR
echo -e "登录...云诊所-备数据库:$IPTAR"
except_passwd $IPTAR
break
;;
"图片服务器")
IPTAR=192.168.106.5
checkip $IPTAR
echo -e "登录...图片服务器:$IPTAR"
except_passwd $IPTAR
break
;;
*)
echo -e "\033[35mUsage:{$0 1|2|3|4|5|6|7...} \033[0m"
;;
esac
done

切换服务器登录(改进)
vi changeServer.sh

#!/bin/bash
#authe by wangxp

#删除错误
stty erase ^H
#服务器名
export SERVERS=(云诊所应用-主 云诊所应用-备 云MIS应用-主 云MIS应用-备 云诊所数据库-主 云诊所数据库-备 云MIS数据库-主 云MIS数>据库-备 负载均衡服务器 静态资源服务器)
#对应服务器IP,务必保证一一对应,excel倒置复制即可
export IPS=(172.31.0.5 172.31.0.9 172.31.0.8 172.31.0.15 172.31.0.11 172.31.0.4 172.31.0.10 172.31.0.3 172.31.0.16 172.31.0.7) #检查ip,是否已登录
function checkip(){
IPADDR=`ip -4 address |grep 'inet'|grep -v '127.0.0.1'|awk '{print $2}'|cut -d/ -f1`
IP_N=`echo "$IPADDR"|wc -l`
for (( n=1; n<=$IP_N ; n++ ))
do
IP=`echo "$IPADDR"|awk "NR==$n"`
if [[ $1 == $IP ]];then
echo -e "已经登录目标服务器,请勿重复登录!IP:$IP"
exit 1
fi
done
/bin/ping -c 1 $1 > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "IP:$1服务器不通,退出登录"
exit 1
fi
} #免密登录。先ssh-keygen -t rsa 生产公私钥,然后ssh-copy-id把公钥复制到远程机器中
function except_passwd(){
if [[ ! -f /root/.ssh/id_rsa || ! -f /root/.ssh/id_rsa.pub ]]
then
echo "ssh-keygen -t rsa"
ssh-keygen -t rsa
fi
/usr/bin/ssh-copy-id root@$1 > /dev/null 2>&1
ssh root@$1
} #查看所有服务器和对应ip
if [ "$1" == "all" ]
then
for (( n=1;n<=${#SERVERS[*]};n++ ))
do
echo -e "$n) ${SERVERS[$n-1]}\tIP:${IPS[$n-1]}"
done
exit 0
fi PS3="选择你要登录的服务器: "
select i in ${SERVERS[@]}
do
for (( k=0;k<=${#SERVERS[*]}-1;k++ ))
do
if test "$i" == ${SERVERS[k]}
then
checkip ${IPS[k]}
echo -e "登录...\E[42;37;5m$i\E[0m IP:${IPS[k]}"
except_passwd ${IPS[k]}
exit 0
fi
done
echo "你输入的服务器不存在!"
break
done

changeServer.sh一键切换服务器脚本的更多相关文章

  1. mac 安装brew mac安装expect mac一键登录服务器脚本

    mac 安装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ma ...

  2. linux一键安装vncserver脚本

    title: linux一键安装vncserver脚本 date: 2016-04-11 14:32:04 tags: --- linux多数情况下是作为服务器使用的,管理员一般也喜欢使用命令行来管理 ...

  3. 一键发布shell脚本

    1.配置集群间免密登录 (1)配置host:vim /etc/hosts (2)生成公钥 :ssh-keygen -t rsa -P '' 这时会提示生成的公钥的存放地址,直接回车,公钥生成成功 (3 ...

  4. Linux系统下定时上传文件至FTP服务器脚本

    环境:Red Hat Enterprise Linux Server release 6.4 需求:需要将Oracle数据库的定时备份上传至FTP服务器 1.干货,用户名:oracle,数据库名称:X ...

  5. CentOS 6一键系统优化 Shell 脚本

    CentOS 6一键系统优化 Shell 脚本 脚本的内容如下: #!/bin/bash#author suzezhi#this script is only for CentOS 6#check t ...

  6. 并发批量管理500台以上服务器脚本分享(shell版)

    转载于运维笔记 Categories:Shell 也许很多人认为shell不能并发任务,其实可通过其它一些方式来实现.下面的脚本是我批量快速管理500+服务器脚本,阅读该脚本前建议先看<自动执行 ...

  7. legend2---lamp.sh一键安装lamp环境需要爬的坑

    legend2---lamp.sh一键安装lamp环境需要爬的坑 一.总结 一句话总结: 1.要记得更改项目权限:chown -R apache:apache /data/www/default/网站 ...

  8. Firefox插件一键切换兼容IE

    转载:http://mozilla.com.cn/thread-42137-1-1.html 让火狐兼容IE的双核扩展,一键切换至IE内核,网银支付无忧愁.支持Adblock plus和FireGes ...

  9. Rehat一键安装mysql脚本和备份数据库脚本

    Rehat一键安装mysql脚本 ##说明:适用,Rehat 5 6 7 1.运行状态,运行成功输出mysql临时密码 2.代码如下 #!/bin/bash #获取系统信息 sudo cat /etc ...

  10. (转)CentOS一键安装Nginx脚本

    原文:https://www.xiaoz.me/archives/10301 https://blog.slogra.com/post-676.html-----centos7一键安装nginx脚本

随机推荐

  1. Java线程池架构2-多线程调度器

      http://ifeve.com/java线程池架构2-多线程调度器(scheduledthreadpoolexecutor)/ 在前面介绍了java的多线程的基本原理信息:<Java线程池 ...

  2. Golang框架之gin

    gin是目前golang的主要web框架之一,之所以选择这个框架是因为其拥有高效的路由性能,并且有人长期维护,目前github上的star数已经破3W. [安装] go get -u github.c ...

  3. Kafka 1.1.1 源码编译

    下载源码 git clone -b 1.1.1 https://github.com/apache/kafka.git --depth=1   使用这样的方式下载主要是解决两个问题:其一,下载指定分支 ...

  4. Mybatis【16】-- Mybatis多对一关联查询

    注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-12-many2one,需要自取,需要配置mave ...

  5. 如何使用docsify搭建自己的github文档?

    安装前提 确认电脑已经安装好 node 和 npm 环境. 如果还没有装好,那需要执行下面的步骤: 1.进入官网:https://nodejs.org/zh-cn/ , 下载长期支持版. 2.安装就直 ...

  6. ABS函数:C语言与Excel中的绝对值计算

    ABS函数:C语言与Excel中的绝对值计算 ABS函数在不同的编程和计算环境中有着相似但又有所区别的用途.在本文中,我们将重点探讨ABS函数在C语言中的应用,同时也会结合Excel中的ABS函数进行 ...

  7. 我们需要什么样的 ORM 框架

    了解我的人都知道, 本人一直非常排斥 ORM 框架, 由于对象关系阻抗不匹配, 一直觉得它没有什么用, 操作数据库最好的手段是 sql+动态语言. 但这两年想法有了重大改变. 2013 年用 js 实 ...

  8. NoSuchAlgorithmException

    今天在写UT时遇到了下面的问题: 1. 使用的powermock来处理static方法; 2. 静态方法里的却有使用到org.apache.http.client(4.3.1)的方法 异常如下: Ca ...

  9. leetcode 05 回文字符串

    leetcode 05 回文字符串 1. 描述 给你一个字符串,找到里面最长的回文字符串 2. 事例 示例 1: 输入:s = "babad" 输出:"bab" ...

  10. Qt/C++音视频开发77-获取本地有哪些摄像头名称/ffmpeg命令日志方式

    一.前言 上一篇文章讲使用ffmpeg函数接口去获取本地摄像头信息,这种方式只能从ffmpeg5版本开始才具备,那ffmpeg3/4只能干瞪眼?那肯定不行的,必须要想办法打通这个功能,查阅信息发现可以 ...