直接看改进版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线程:新特征-条件变量

    条件变量是Java5线程中很重要的一个概念,顾名思义,条件变量就是表示条件的一种变量.但是必须说明,这里的条件是没有实际含义的,仅仅是个标记而已,并且条件的含义往往通过代码来赋予其含义.   这里的条 ...

  2. Ubuntu18.04安装Java

    介绍 Java和JVM(Java的虚拟机)是许多软件所必需的,包括Tomcat,Jetty,Glassfish,Cassandra和Jenkins. 在本教程中,您将使用apt安装各种版本的Java ...

  3. 全球最大分类广告商的Karpenter实践:减负运维、减少中断、每月省21万(上)

    原文链接: https://medium.com/adevinta-tech-blog/the-karpenter-effect-redefining-our-kubernetes-operation ...

  4. C++ 实现万年历(原创)

    2020年08月31日 首次分享文档源代码. 2023年11月23日 对文档.代码进行了更新,希望可以帮助到你. 1. 实现功能 提供菜单方式选择,假定输入的年份在1940-2040年之间. 输入一个 ...

  5. H5 新增表单

    1.提示占位 placeholder <input type="text" name="userName" placeholder="请输入用户 ...

  6. SpringBoot+logback 日志打印脱敏,正常获取对象不受影响

    添加依赖 注意:springboot版本2.7.0 <dependency> <groupId>org.slf4j</groupId> <artifactId ...

  7. 序列化与反序列化的概念、基于django原生编写5个接口、drf介绍和快速使用、cbv源码分析

    目录 一.序列化反序列化 二.基于django原生编写5个接口 三.drf介绍和快速使用 概念 安装 代码 四.cbv源码分析 一.序列化反序列化 api接口开发,最核心最常见的一个过程就是序列化,所 ...

  8. 证书签名算法OID.1.2.156.10197.1.501

    证书签名算法OID.1.2.156.10197.1.501   证书签名算法OID为1.2.156.10197.1.501表示该证书使用的是基于SM3的SM2签名算法 1.SM2证书数据和RSA算法证 ...

  9. MYSQL支持的数据类型-数值类型

    一.数值类型分类 MYSQL支持所有标准SQL中的数值类型,其中包括严格数值类型(INTEGER.SMALLINT.DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT.REAL和DOU ...

  10. Qt/C++推流程序自动生成网页远程查看实时视频流(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)

    一.前言说明 推流程序将视频流推送到流媒体服务器后,此时就等待验证拉流播放,一般可以选择ffplay命令行播放或者vlc等播放器打开播放,也可以选择网页直接打开拉流地址播放,一般主流的浏览器都支持网页 ...