直接看改进版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. python之常用开发包

    1.passlib (https://passlib.readthedocs.io/en/stable/) passlib 目前常见的不可逆加密算法有以下几种: 一次MD5(使用率很高) 将密码与一个 ...

  2. vagrant搭建开发环境

    一:我们为什么需要用这玩意 我们在开发中经常会面临的问题:环境不一致,有人用Mac有人用Windos还有几个用linux的,而我们的服务器都是linux. 在我本地是可以的啊,我测了都,没有问题啊,然 ...

  3. 在window 使用 docker 安装redis 踩坑记

    1. 安装REDIS 在安装的时候,使用 docker pull redis 就可以了. 但是 实际上 发现镜像居然拉不下来. 修改了一下 docker 镜像. 配置如下: "registr ...

  4. 使用自定义 JsonConverter 解决 long 类型在前端的精度问题

    问题 Javascript 的 number 类型存在精度限制,浏览器反序列化 JSON 时,无法完整保留 long 类型的精度. 在 JSON 序列化时将 long 转换为 string 进行传递就 ...

  5. uni.showModel内容换行

    前情 最近在做小程序项目,选用有是当前比较火的uniapp技术栈,在产品项目中用到不少的需要引导用户确认后才继续操作的弹框. 为什么想到我去换行? 其实showModel弹框的content是支持自动 ...

  6. P6474 [NOI Online #2 入门组] 荆轲刺秦王 题解

    荆轲将会臭名昭著 首先 $15$ 做法很简单,那就是直接 `cout<<-1` 考虑用 BFS 来解思路很简单,但是怎么求每个士兵的控制范围呢? 直接暴力时间复杂度是 $O(nma^2)$ ...

  7. Nginx基础使用

    Nginx Nginx是一个WEB服务 [1].安装nginx 1.官网安装 2.使用默认的仓库安装,版本较低 3.编译方式安装,需要其他功能模块的时候 自定义安装 # 基于官网仓库的安装方式,版本较 ...

  8. Python+Selenium模拟人工抓取数据

    Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fire ...

  9. AOP-Redis缓存

    我没有单独使用过Redis,细节我可能解释不到位.该文章是采用依赖注入实现AOP-Redis缓存功能的 . 之前有写实现Memory缓存的.异曲同工之妙. 使用Redis离不开安装get包:Stack ...

  10. Vue3项目运行时报错误:TypeError Cannot read properties of undefined (reading 'filter')

    let matched = this.$route.mached.filter(item => item.name);方法报错:TypeError Cannot read properties ...