直接看改进版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. 浅析JVM内存结构和6大区域

    内存作为系统中重要的资源,对于系统稳定运行和高效运行起到了关键的作用,Java和C之类的语言不同,不需要开发人员来分配内存和回收内存,而是由JVM来管理对象内存的分配以及对象内存的回收(又称为垃圾回收 ...

  2. 设置 crossdomain.xml 文件实施 HTTP 流式传输

    本文概括介绍了跨域策略文件,以及如何在 Adobe Media Server 中为 HTTP 流式传输配置该文件. 为什么需要采用 crossdomain.xml 文件? 跨域策略文件 跨域策略文件是 ...

  3. JDocumentEditor

    package infonode; /** * * @author sony */ //JDocumentEditor.java import java.awt.*; import java.awt. ...

  4. Nuxt.js 应用中的 error 事件钩子

    title: Nuxt.js 应用中的 error 事件钩子 date: 2024/12/3 updated: 2024/12/3 author: cmdragon excerpt: 在任何 Web ...

  5. IOS打开对应后缀文件

    IOS打开对应后缀文件 通过ShareExtension打开 点击文件共享后出现的上方列表,如下图 在 info.plist 中添加 Document types <key>CFBundl ...

  6. ChatGPT接口测试用例生成的流程

    通常,使用ChatGPT生成接口测试用例的流程可以分为以下关键步骤. 收集接口信息 收集接口的相关文档和信息,如接口名称.请求方法.请求参数.返回结果等.这些是ChatGPT生成测试用例需要的输入信息 ...

  7. 解决用netty去做web服务时,post长度过大的问题

    原文地址 http://my.oschina.net/momohuang/blog/114552 先说一下,本来是想自己写socket ,启动一个简单点的web服务用于接收数据的.写完之后,发现会有各 ...

  8. Argo CD使用CLI工具修改默认密码

    查看默认密码 kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}&q ...

  9. jenkins build

    clean test org.jacoco:jacoco-maven-plugin:0.8.5:prepare-agent org.owasp:dependency-check-maven:5.3.0 ...

  10. Iframe标签显示目标网页的指定区域,视频可全屏可缩小

    由于播放的直播视频有多余的logo和聊天框等所以需要去掉,用Iframe标签显示目标网页的指定区域,视频可全屏可缩小 用自己私人的服务器来测试吧,99买阿里云 HTML代码 <html> ...