直接看改进版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. 【集成-Jedis】SpringBoot集成Jedis

    将jedis的依赖放进Maven <dependency> <groupId>redis.clients</groupId> <artifactId>j ...

  2. 『玩转Streamlit』--表单Form

    在Streamlit中,Form组件是一种特殊的UI元素,允许用户输入数据而不立即触发应用的重新运行. 这对于创建需要用户输入多个参数后再进行处理的交互式表单非常有用. 1. 概要 Form组件的主要 ...

  3. sde解除锁定

    在sde数据被锁定的情况下,编辑.创建featureclass或者注册版本的时候会报告:Lock request conflicts with an established lock. 方法一:多半情 ...

  4. 腾讯云 COS 多 AZ 存储保证服务高可用性

    腾讯云 COS 的多 AZ 存储架构能够为用户数据提供数据中心级别的容灾能力.多 AZ 存储将客户数据分散存储在城市中多个不同的数据中心,当某个数据中心因为自然灾害.断电等极端情况导致整体故障时,多 ...

  5. 操作系统messages文件位置更改

    问题现象 在遇到一个问题的时候需要查看操作系统的日志,但是到操作系统上的 /var/log/messages 文件中发现该文件已经很久没有刷新过了. 这个系统之前是做过安全加固的,我怀疑它改过操作系统 ...

  6. Qt编写可视化大屏电子看板系统29-模块7品质管理

    一.前言 品质管理模块是在送检合格模块的基础上增加了统计而来,总共包括了三个子模块:品质占比.班组合格率.每日合格率统计,其中品质占比子模块采用饼图控件显示对应的百分比,不同百分比颜色不一样,这个饼图 ...

  7. Qt数据库应用1-数据导入导出csv

    一.前言 在经历过大大小小十几个甚至几十个纯QtWidget项目后,涉及到数据库相关的项目,几乎都有一个需求,将少量的信息数据比如设备信息.防区信息等,导出到文件保存好,然后用户可以打开该表格进行编辑 ...

  8. Qt编写安防视频监控系统67-跨平台及国产系统

    一.前言 得益于Qt的超强跨平台特性,本系统也是跨平台的,亲测的系统包括windows全系列.ubuntu全系列.centeos.国产系统UOS.国产系统银河麒麟.中标麒麟.嵌入式linux.树莓派. ...

  9. 不为人知的网络编程(十六):深入分析与解决TCP的RST经典异常问题

    本文由腾讯技术kernel分享,原题"TCP经典异常问题探讨与解决",下文进行了排版和内容优化等. 1.引言 TCP的经典异常问题无非就是丢包和连接中断,在这里我打算与各位聊一聊T ...

  10. blip2代码解析

    请你作为一个代码翻译解释生成器,下面我会发送一个github链接给你,请你详细解析与介绍这个链接下代码 好的,请发送链接. https://github.com/huggingface/transfo ...