当前位置: 首页 > news >正文

西宁公司网站设计上海债务优化公司

西宁公司网站设计,上海债务优化公司,安徽省建设厅网站证书查询,.net购物网站开发目 录 一、要求 二、解决方案 (一)解决思路 (二)方案 三、脚本程序实现 (一)脚本代码和解释 1、定义hosts.txt文件 2、脚本代码 3、代码解释 (二)脚本验证 1…

目             录

一、要求

二、解决方案

(一)解决思路

(二)方案

三、脚本程序实现

(一)脚本代码和解释

1、定义hosts.txt文件

2、脚本代码

3、代码解释

(二)脚本验证

1、脚本编辑

2、给予执行权限

3、运行脚本,查看效果

四、扩展


一、要求

       一般我们做维护的时候,必然是维护多个服务器,在没有更多的工具的情况下,如何更加方便的登录到不同的linux服务器上进行维护?

二、解决方案

(一)解决思路

        可以把要维护的所有服务器的信息输入到一个文件中,若需要删除或者新增服务器,直接修改这个文件就行。然后可以编写脚本,来选择不同的服务器,然后调用ssh命令登录刚刚选择到的服务器。

(二)方案

       (1)建立hosts列表文件hosts.txt,包含服务器的名字、IP地址、登录账号等信息;

       (2)通过select、awk等命令,获取hosts列表中的服务器地址;

       (3)选择要登录的服务器;

       (4)调用ssh,配置合适的选项,准备登录选择到的服务器;

       (5)输入密码,登录选中的服务器。

三、脚本程序实现

        直接把脚本写出来,分享给大家。

(一)脚本代码和解释

1、定义hosts.txt文件

        内容格式为:主机名 IP User Port ,具体定义参考如下:

[root@localhost home]# cat host.txt

ecs-52a1  121.37.18.30  121yunwei 26

test2   114.246.242.112  admin  22

[root@localhost home]#

2、脚本代码

如下为编写的bash代码:

 #!/bin/bash
PS3="Please input number: "
HOST_FILE=hosts.txt
while true; do
select NAME in $(awk '{print $1}' $HOST_FILE) quit; do
[ ${NAME:=empty} == "quit" ] && exit 0
IP=$(awk -v NAME=${NAME} '$1==NAME{print $2}' $HOST_FILE)
USER=$(awk -v NAME=${NAME} '$1==NAME{print $3}' $HOST_FILE)
PORT=$(awk -v NAME=${NAME} '$1==NAME{print $4}' $HOST_FILE)
if [ $IP ]; then
echo "Name: $NAME, IP: $IP"
ssh -o StrictHostKeyChecking=no -p $PORT -i id_rsa $USER@$IP # 密码免交互登录
break
else
echo "Input error, Please enter again!"
break
fi
done
done

3、代码解释

         脚本的功能是允许用户从一个预定义的主机列表中选择一个主机,并使用 SSH 密码进行免交互登录。如下逐步解释这段脚本的每一部分。

(1)PS3="Please input number: "

        这是为 select 命令设置的提示信息。PS3 是 select 命令中用于提示用户输入的变量。

(2)HOST_FILE=hosts.txt

        定义一个变量 HOST_FILE,其值为 host.txt。这个变量将用于后面的脚本中,指向包含主机信息的文件。

(3)while true; do ... done

        这是一个无限循环,脚本会一直在这个循环中运行,直到遇到 exit 命令才会退出。

(4)select NAME in $(awk '{print $1}' $HOST_FILE) quit; do ... done

        这是一个 select 循环,它会显示 HOST_FILE 文件中每行的第一个字段(使用 awk 命令提取),并让用户选择一个。用户可以选择的选项还包括一个 quit 选项。

(5)[ ${NAME:=empty} == "quit" ] && exit 0

        如果用户选择了 quit 选项,脚本将退出,并返回状态码 0。

(6)IP=$(awk -v NAME=${NAME} '$1==NAME{print $2}' $HOST_FILE)

        使用 awk 命令从 HOST_FILE 文件中查找用户选择的主机名,并提取其 IP 地址。

(7)USER=$(awk -v NAME=${NAME} '$1==NAME{print $3}' $HOST_FILE)

        使用 awk 命令从 HOST_FILE 文件中查找用户选择的主机名,并提取其用户名。

(8)PORT=$(awk -v NAME=${NAME} '$1==NAME{print $4}' $HOST_FILE)

        使用 awk 命令从 HOST_FILE 文件中查找用户选择的主机名,并提取其端口号。

(9)if [ $IP ]; then ... else ... fi

        这是一个条件语句,检查变量 IP 是否为空。如果不为空,执行 SSH 登录操作;如果为空,显示错误信息并跳出 select 循环。

(10)echo "Name: $NAME, IP: $IP"

        显示用户选择的主机名和 IP 地址。

(11)ssh -o StrictHostKeyChecking=no -p $PORT -i id_rsa $USER@$IP

        使用 SSH 命令登录到用户选择的主机。这里禁用了 StrictHostKeyChecking 选项,这意味着在首次连接到主机时不会询问用户确认主机的密钥。-p 选项用于指定端口号,-i 选项用于指定私钥文件(这里假设为 id_rsa)。

(12)break

        在成功登录后,使用 break 命令跳出 select 循环和 while 循环。

(二)脚本验证

1、脚本编辑

        使用编辑器,比如vi,把代码输入进去;

        保存这个脚本到一个文件中,比select_host.sh

2、给予执行权限

      chmod +x w select_host.sh

3、运行脚本,查看效果

     可以运行这个脚本来检查进程的运行情况,如下:

[root@localhost home]#
[root@localhost home]#
[root@localhost home]# whoami
root
[root@localhost home]#
[root@localhost home]# sh select_host.sh
1) ecs-52a1
2) test2
3) quit
Please input number: 2
Name: test2, IP: 114.246.242.222
Warning: Identity file id_rsa not accessible: No such file or directory.
admin@114.246.242.112's password:
Permission denied, please try again.
admin@114.246.242.112's password:
Permission denied, please try again.
admin@114.246.242.112's password:
Last failed login: Sat Mar  2 23:30:56 CST 2024 from 222.93.149.89 on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Sat Mar  2 23:30:16 2024 from 222.93.149.89
[admin@ecs01 ~]$
[admin@ecs01 ~]$
[admin@ecs01 ~]$ whoami
admin
[admin@ecs01 ~]$
[admin@ecs01 ~]$
[admin@ecs01 ~]$  等待输入超时:自动登出
Connection to 114.246.242.112 closed.
1) ecs-52a1
2) test2
3) quit
Please input number: 3
[root@localhost home]#

四、扩展

        在实际使用中, 服务器数量可能很多,您可以直接在hosts.txt中按照规定的格式任意添加,同时,您还可以自己设定主机的名称,方便记忆。

http://www.yayakq.cn/news/971808/

相关文章:

  • 企业网站设计思路wordpress进不去
  • 太原网站制作案例企业网站建设与推广多少钱
  • 佳木斯网站建设哪家好wordpress插件 connect
  • 展芒设计网页南通优化网站公司
  • 网站标题修改小县城做婚礼网站
  • 电子商务网站建设重要性企业网站运维
  • 电商网站 开发费用南通市建设局网站马建明
  • 制作科技网站首页服装网站建设项目实施报告范文
  • 北京网站建设首选优达宣传片拍摄大纲
  • 哪里找高清图片素材seo作弊
  • 四川建设厅网站打不开深圳网站建设lxhd
  • 做房产网站在百度推广推广费关注公众号一单一结兼职app
  • html网站开发实例教程软件技术好学吗
  • 物流网站怎么做推广建设网站的理由
  • 免费建站小程序淘宝客网站怎么做推广
  • 招聘网站模板页手机端公司网站怎么做
  • 登尼特网站建设服务郑州公司建网站
  • 做好的网站怎么注销企业信息系统查询系统官网江苏
  • 宁波模板建站哪家服务专业中介网站模板
  • 影视网站视频接口怎么做工业产品外观设计
  • 桂林市建设工程质量监督站网站网站正在建设中 蓝色
  • 贺州网站建长沙百度快速优化排名
  • 专做教育网站拿站西安建站价格
  • 如何制作flash网站哪个网站可以查建筑公司资质
  • 长沙网站制作方法湘潭知名网站建设
  • 国内餐饮设计网站建设wordpress3d标签插件
  • 太原cms建站模板四平网站公司
  • 校园网站建设平台企信网是干什么的
  • 网站申请备案流程百度竞价运营
  • php网站后台密码忘记了wordpress图片压缩文件