首页 > 系统相关 >shell脚本自动化实战

shell脚本自动化实战

时间:2023-10-20 09:45:43浏览次数:85  
标签:实战 脚本 shell 字节 passwd 剪取 用户 自动化 安装

Shell脚本自动化部署实战(二)

原创 叶凡Jonas 软件测试成长之路 2023-09-01 00:00 发表于上海 收录于合集#UI自动化系列54个

三丶shell语法

4.程序结构

2.循环结构

说明:在上一篇博客中讲到了for循环,现在开始讲解while循环

a)格式

while [ 条件 ]

do

 命令

done

示例1:变量间加减运算s=$(($s+$i))  s=$[$s+$i]  ((s=$s+$i))

  • 求1-100之间的和

     

图片

  • 运行脚本进行测试

     

图片

5.函数

1.定义

函数名(){代码}

示例:

图片

 

2.函数调用

a)必须先定义再调用

b)格式:函数名

示例:

图片

  • 执行脚本进行测试

     

图片

 

3.函数中的参数

在函数中使用$n来接收数据

示例1:

图片

  • 运行脚本进行测试

     

图片

示例2:

  • 输入任意两个整数进行求和运算,并打印结果

     

图片

  • 运行脚本进行测试

     

图片

4.返回值

函数中默认的存在返回值:正确时返回0,错误时返回1,查看返回值内容 :$?

示例1:

  • 正确时返回0

     

图片

  • 运行脚本进行测试

     

图片

示例2:

  • 错误时返回1

     

图片

  • 运行脚本执行命令

     

图片

示例3:

  • 输入一个目录,判断目录是否存在,如果不存在则给出提示,如果存在则提示输入要创建的文件名,判断创建的文件是否存在,如果不存在,则继续创建,否则提示该文件已经存在,用函数实现

换出流程图

图片

  • 根据流程图编写脚本

     

图片

  • 运行脚本进行测试

     

图片

四丶自动化部署实战

1.安装说明

本文档将指导您完成 Linux 企业版下面的 Oracle 数据库的安装。通过本次安装您将发 现您的 Linux 系统发生如下变化:

安装了可以使用的 Oracle 数据库;

配置了可以使用的组和用户;

配置了相关权限的环境变量;

2.安装前的准备

示例是基于虚拟机下的 Linux 系统的安装工作,使用的本地操作系统是[Windows 2000 Server],使用的虚拟机是[VMware-workstation-5.5.2-29772.exe]使用的 Linux 企业版是[红 帽企业级 Linux.AS 版].V4.0],使用的 Oracle 版本是[Oracle 10g]。安装前请确认如下事宜:

当前 Linxu 使用的是企业版,并且安装了[开发工具]工具包;

当前 Linux 系统已经配置好了网络设置;

已经准备好了 Oracle 安装文件;

有足够的硬盘空间用于安装;

有足够的物理内存和分配内存便于安装;

下面提供的是一组需要的资源参考:

至少 1024 MB 物理内存

1024-2048 需 1.5 倍的交互空间

2048-8192 需 1 倍的交互空间

8192- 需 0.75 倍的交互空间

至少 400 MB /tmp 临时目录空间

oracle 软件需要 1.5 GB 到 3.5 GB 磁盘空间

默认数据库需要 1.2 GB  

3.进行安装前的配置

1.确定当前登录的是超级管理员 root 用户,如下内容都是在 root 下面进行的操作

依次执行命令:

[groupadd  dba]----------------------------------------新建管理组

[groupadd  oinstall]------------------------------------新建安装组

[useradd  tester  -g  oinstall  -G  dba]----------新建用户,用户录属于 dba 和 oinstall      [passwd  tester]------------------------------------------修改用户密码

画出判断当前用户是否是root用户流程图

图片

 

  • 编写脚本

     

图片

  • 当前用户运行脚本

     

图片

  • 切换到root用户运行脚本

     

图片

画出新建管理组函数流程图

 

图片

 

  • 在流程图中判断dba组是否存在,可以通过查看/etc/group文件中是否存在dba

     

图片

所涉及到的知识点:cut--->剪取

a)按照字节进行剪取:-b表示;注意:一个空格就是一个字节,一个字母就是一个字节,一个汉字三个字节

举例:对/etc/passwd文件内容进行截取

图片

  • head -5 passwd查看前5行数据

     

图片

  • head -5 passwd|cut -b1-4  剪取1-4的字节(一个字母1字节,汉字3字节)

     

图片

  • 截取前5行的第一个字节

     

图片

  • head -5 passwd|cut -b -4 剪取1-4的字节

     

图片

  • head -5 passwd|cut -b 4 剪取第4个的字节

     

图片

  • head -5 passwd|cut  -b 4- 从第4个字节开始剪取

     

图片

  • head -5 passwd|cut -b 1-2,4 剪取1-2个字节以及第4个字节

     

图片

  • pwd|cut -b -3,3- 剪取的相同的内容会去重

     

图片

b)按照字符进行剪取:-c表示;注意:一个汉字就是一个字符、一个空格就是一个字符

举例:对pwd内容进行截取

  • pwd|cut -c 1-2 剪取前两个字符

     

图片

  • pwd|cut -c 1 剪取第一个字符,pwd|cut -c 1,4 剪取第一个和第四个字符

     

图片

c)按照域进行进行剪取:剪取的分隔符 -d,剪取的域的位置 -f

举例:对passwd文件内容按照冒号进行剪取,取第一个域

  • head -5 passwd|cut -d ":" -f 1

     

图片

d)编写脚本

图片

  • 执行脚本进行测试

     

图片

画出新建安装组流程图

图片

  • 编写脚本

     

图片

  • 运行脚本进行测试

     

图片

画出新建用户以及修改密码流程图

图片

  • 当创建一个用户成功后,在/etc/passwd文件中则会出现该创建成功的用户数据

     

图片

  • 编写脚本

     

图片

  • 运行脚本进行测试

     

图片

  • 编写脚本实现修改用户密码

     

图片

  • 执行脚本进行测试

     

图片

 

2.继续利用 root 用户建立安装目录并分配权限,分别执行如下命令

[mkdir -p /oracle/product/10.2.0/db_1]-----------------------------------新建 oracle 安装目录

[chown  -R  tester.oinstall  /oracle]---------修改 oracle 安装目录属主和属组

[chmod  755  -R  /oracle]--------------------修改 oracle 安装目录操作权限

画出流程图

图片

  • 编写脚本

     

图片

3.注销当前 root 用户(建议注销,不用 su 命令置换),再用刚才新建的 tester 用户登录 系统,进入当前用户的根目录执行命令[vi ./.bash_profile],打开用户环境变量列表,插入如下内容:

图片

  • 进入tester用户目录下,查看是否存在.bash_profile文件

     

图片

  • 查看.bash_profile文件内容

     

图片

4.进入文件后,单击[i],开始修改,修改完成后保存退出(ESC---冒号---wq),执行命 令[source  ./.bash_profile],使修改生效,此时你可以利用命令[echo  $ORACLE_BASE]或 [echo  $PATH]命令查看刚才的设置内容

画出流程图

图片

 

  • 编写脚本,在向.base_profile文件中插入内容,涉及到的知识点:sed -i "行号a内容" 文件名

     

图片

  • 为了测试脚本,需要将之前测试脚本创建的组合用户进行删除(vi group 以及 vi passwd)

     

图片

图片

  • 运行脚本进行测试

     

图片

4.安装 Oracle

1.注销系统,用 tester 用户登录系统(注意如果上一步没有注销,这一步一定要注销, 要是你当前桌面显示[tester 的主文件夹]),找到 Oracle 安装文件,比如我的是放在/tmp 下的 zip文件,所以首先解压缩

a)注销系统登录tester用户

图片

画出流程图

图片

 

  • 编写脚本

     

图片

  • 运行脚本进行测试

     

图片

b)解压文件

画出流程图

图片

 

  • 编写脚本

     

图片

  • 运行脚本进行测试

     

图片

  • 编写解压脚本

     

图片

  • 执行脚本进行测试,文件解压成功

     

图片

2.解压缩完成,会生成一个 database 的文件夹,进入 database 目录下会看到一个可执 行文件 runInstaller,执行命令[./runInstaller],安装开始

画出流程图

图片

 

  • 编写脚本

     

图片

  • 运行脚本进行测试

     

图片

3.自动化部署中的问题

a)启动runInstaller出现libXtst.so.6: cannot open shared object file: No such file or directory错误提示

图片

解决方法:依次安装如下的包(切换root用户)

图片

yum install libXp*.i686

yum install libXt*.i686

yum -y install libXtst

b)安装界面中文乱码

拷贝zysong.ttf字体文件到/usr/share/fonts/zh_CN/TrueType/ 目录下,如果在/usr/share/fonts/目录下没有zh_CN/TrueType/目录,则进行mkdir zh_CN/TrueType -p创建,需要zysong.ttf这个文件请私聊博主或者评论留言即可

4.自动化部署总结

a)部署前准备

1.判断用户是否为root

2.创建管理组、安装组函数

3.创建tester用户函数

4.创建目录函数

5.创建了修改环境变量函数

b)部署

1.判断用户是否为tester

2.创建了安装函数install(拷贝、解压、安装)

5.shell内容总结

图片

高级性能测试全程班视频课程      淘宝店铺购买:

图片

图片

图片

图片

课程链接     https://item.taobao.com/item.htm?ft=t&id=719233442512

       

图片

 

叶凡Jonas

赞赏二维码喜欢作者

收录于合集 #UI自动化系列  54个 上一篇Shell脚本自动化部署实战(一)   阅读 1629 软件测试成长之路   ​ 收藏此内容的人还喜欢   《梁宁产品思维30讲》——同理心:看懂情绪,找到天分     软件测试成长之路 不看的原因   什么是负载均衡?     软件测试技术派 不看的原因   Linux内核的经典调试方式     潮汕IT智库 不看的原因       复制搜一搜分享收藏划线    

人划线

 

标签:实战,脚本,shell,字节,passwd,剪取,用户,自动化,安装
From: https://www.cnblogs.com/cherishthepresent/p/17776301.html

相关文章

  • Flex 布局项目实战,好像没那么难!
    在上篇文章别再用float布局了,flex才是未来!中,我们聊到Flex布局才是目前主流的布局方式。在文章最后,我们还贴了一个案例,并且还浅浅地讲解了一下。有些小伙伴说,这讲解得太粗了,要是能够再深入讲解一下,顺便把代码分享分享就好了。那么,今天我们就继续来扒一扒这个项目的布局实现。......
  • 【matplotlib 实战】--气泡图
    气泡图是一种多变量的统计图表,可以看作是散点图的变形。与散点图不同的是,每一个气泡都表示三个维度的数据,除了像散点图一样有X,Y轴,气泡的大小可以表示另一个维度的数据。例如,x轴表示产品销量,y轴表示产品利润,气泡大小代表产品市场份额百分比。它可以帮助我们发现变量之间的模式、趋......
  • Shell-$(cd "$(dirname "$0")",pwd)
    #!/bin/bashBIN_FOLDER=$(cd"$(dirname"$0")";pwd)echo$BIN_FOLDERPROJECT_FOLDER=$(cd"$(dirname"$BIN_FOLDER")";pwd)echo$PROJECT_FOLDERPYTHON_BIN=$PROJECT_FOLDER/.venv/bin/pythonecho$PYTHON_BINBIN_FOLDER......
  • 自动化测试如何准备测试数据
    其实大部分类型的测试都需要去准备测试数据。手工测试:一些基础数据,比如配置数据等等是需要去准备的;自动化测试:基础需要准备,现有数据,动态运行时产生的数据是需要准备的;性能测试:跟自动化测试差不多;这里就牵扯到了一些关于数据的概念了。测试数据的分类我们可以给测试数据分......
  • Flink 从0到1实战实时风控系统[云盘超清]
    点击下载:Flink从0到1实战实时风控系统[云盘超清]  提取码:02poFlink是一个基于流处置的散布式计算框架,能够处置无限制的实时数据流。在实时风控系统中,Flink能够协助我们完成实时的数据流处置,从而完成实时风险控制。下面是一个从0到1的Flink实时风控系统简介:数据源接入首先,需求......
  • ChatGPT入门实战课 AI时代更具竞争力的开发者[网盘完整]
    点击下载:ChatGPT入门实战课AI时代更具竞争力的开发者[网盘完整]  提取码:vvtwChatGPT是一家全球抢先的人工智能公司,具有强大的技术实力和创新才能。为了协助开发者更好地理解ChatGPT的技术和应用,我们推出了ChatGPT入门实战课,协助开发者成为更具竞争力的AI时期开发者。ChatGPT入......
  • 无代码玩转web UI自动化
    可以直接进入官网下载开源版或点击右上角体验企业版体验RunnerGoUI自动化平台RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。RunnerGoUI自动化基于Selenium浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队无需复杂......
  • 无代码玩转web UI自动化
    可以直接进入官网下载开源版或点击右上角体验企业版体验 RunnerGoUI自动化平台RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。RunnerGoUI自动化基于Selenium浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队......
  • Linux shell编程学习笔记8:使用字符串
    一、前言字符串是大多数编程语言中最常用最有用的数据类型,这在Linuxshell编程中也不例外。本文讨论了LinuxShell编程中的字符串的三种定义方式的差别,以及字符串拼接、取字符串长度、提取字符串、查找子字符串等常用字符串操作,,以及反引号在echo和expr命令联合使用时的作用。二......
  • Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)
    一、命令行提示符格式内容因shell类型而异Linux终端命令行提示符内容格式则因shell的类型而异,例如CoreLinux默认的shell是sh,其命令行提示符为黑底白字,内容为:tc@box:/$其中,tc为当前用户名,box为主机名,/为当前目录路径,$表示当前用户类型是普通用户 。 二、环境变量PS1存储了命令行提......