课时37:脚本交互_脚本外交互_案例实践

2.2.2 案例实践

学习目标

这一节,我们从 登录模拟、堡垒机实践、小结 三个方面来学习。

登录模拟

需求

模拟shell终端工具的登录,功能过程如下:
	请输入用户名: 
	请输入密码:
	您输入的用户名和密码是: xxx

脚本实践

[root@localhost ~]# cat simple_login.sh
#!/bin/bash
# 功能: 模拟shell登录
# 版本:v0.1
# 作者:书记
# 联系:www.superopsmsb.com

# 定制命令变量
OS_INFO=$(cat /etc/redhat-release)
KERNEL_INFO=$(uname -r)
OS_ARCH=$(uname -m)
HOSTNAME=$(hostname)

# 清屏
clear

# 输出提示信息
echo -e "\e[32m${OS_INFO} \e[0m"
echo -e "\e[32mKernel ${KERNEL_INFO} on an ${OS_ARCH} \e[0m"
echo "---------------------------------"
# 交互输入登陆信息
read -p "请输入用户名:" account
read -s -t30 -p "请输入登录密码:" password
echo
echo "---------------------------------"
# 输出用户输入信息
printf "您输入的用户名:\e[31m%s\e[0m您输入的密码:\e[31m%s\e[0m\n" ${
   account} ${
   password}
脚本执行效果
[root@10 ~]# /bin/bash simple_login.sh
CentOS Linux release 7.9.2009 (Core)
Kernel 3.10.0-1160.el7.x86_64 on an x86_64
---------------------------------
请输入用户名:root
请输入登录密码:
---------------------------------
您输入的用户名:root您输入的密码:123456

堡垒机实践

功能需求

模拟堡垒机的登录,功能过程如下:
	请选择要登录的主机
	请输入用户名: 
	使用指定的用户连接远程主机

脚本实践

[root@localhost ~]# cat simple_jumpserver.sh
#!/bin/bash
# 功能:定制堡垒机的展示页面
# 版本:v0.2
# 作者:书记
# 联系:www.superopsmsb.com

# 堡垒机的信息提示
echo -e "\e[31m \t\t 欢迎使用堡垒机"

echo -e "\e[32m
-----------请选择你要登录的远程主机-----------
 1: 10.0.0.14 (nginx)
 2: 10.0.0.15 (tomcat)
 3: 10.0.0.19 (apache)
 q: 使用本地主机
----------------------------------------------
"'\033[0m'

# 由于暂时没有学习条件判断,所以暂时选择 q
read -p "请输入您要选择的远程主机编号: " host_index
read -p "请输入登录本地主机的用户名: " user

# 远程连接主机
ssh $user@localhost
脚本执行效果
[root@10 ~]# /bin/bash simple_jumpserver.sh
                 欢迎使用堡垒机

-----------请选择你要登录的远程主机-----------
 1: 10.0.0.14 (nginx)
 2: 10.0.0.15 (tomcat)
 3: 10.0.0.19 (apache)
 q: 使用本地主机
----------------------------------------------

请输入您要选择的远程主机编号: p
请输入登录本地主机的用户名: root
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:XUJsgk4cTORxdcswxIKBGFgrrqFQzpHmKnRRV6ABMk4.
ECDSA key fingerprint is MD5:71:74:46:50:3f:40:4e:af:ad:d3:0c:de:2c:fc:30:c0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
root@localhost's password:
Last login: Mon Jun 13 12:19:34 2022 from 10.0.0.1
[root@10 ~]# exit
登出

小结


相关推荐

  1. 课时37脚本交互_脚本外交_案例实践

    2024-02-19 05:58:03       28 阅读
  2. 课时94:脚本自动化_脚本信号_信号基础

    2024-02-19 05:58:03       16 阅读
  3. 课时95:脚本自动化_脚本信号_信号捕捉

    2024-02-19 05:58:03       14 阅读
  4. 课时156:脚本发布_简单脚本_变量转化

    2024-02-19 05:58:03       13 阅读
  5. 课时158:脚本发布_简单脚本_远程执行

    2024-02-19 05:58:03       8 阅读
  6. 课时21:内置变量_脚本相关

    2024-02-19 05:58:03       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-19 05:58:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-19 05:58:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-19 05:58:03       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-19 05:58:03       20 阅读

热门阅读

  1. Postgresql源码(122)Listen / Notify与事务的联动机制

    2024-02-19 05:58:03       22 阅读
  2. 001:自动驾驶概述

    2024-02-19 05:58:03       22 阅读
  3. 【Ubuntu 22.04】解决Ubuntu 22.04终端行距过大的问题

    2024-02-19 05:58:03       37 阅读
  4. 图像处理与计算机视觉算法

    2024-02-19 05:58:03       27 阅读
  5. wsl内置Ubuntu使用 Dinky 与 Flink 集成

    2024-02-19 05:58:03       31 阅读
  6. [R] First Section Revision

    2024-02-19 05:58:03       24 阅读
  7. go内置库函数实现client与server数据的发送接收

    2024-02-19 05:58:03       31 阅读
  8. 【状态估计】深度传感器与深度估计算法(1/3)

    2024-02-19 05:58:03       31 阅读