shell脚本自动化实战
Shell脚本自动化部署实战(二)
三丶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