陶刚的博客
与你分享我的点滴

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

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

目录

三丶shell语法

4.程序结构

5.函数

四丶自动化部署实战

1.安装说明

2.安装前的准备

3.进行安装前的配置

4.安装 Oracle


三丶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内容总结

赞(0) 打赏
版权声明:本文为CSDN博主「cdtaogang」的原创文章,遵循CC 4.0 BY-NC-SA版权协议,转载请附上原文出处链接及本声明:记录学习生活 » Shell脚本自动化部署实战(二)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏