linux rpm自动化安装脚本编写及优化
Posted 云来云去-起飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux rpm自动化安装脚本编写及优化相关的知识,希望对你有一定的参考价值。
此处以httpd为列子,进行编写,具体内容如下:
一、RPM的脚本
1.1 RPM 自动化安装脚本编写思路
(1)需要查看httpd 的服务是否存在,如果不存在,开始执行安装脚本,如果存在进行提示。
(2)安装脚本,根据httpd安装时需要的依赖包,首先查看依赖包是否存在,如果不存在,需要安装依赖包。
(3)依赖包安装完成后,检测依赖包是否存在。
(4)然后安装httpd主服务包。
1.1.RPM 安装脚本
#!/bin/bash
cmdPlay=$(rpm -q httpd)
tools=""
echo "开始查找httpd。。。"
if [[ $cmdPlay == 未* ]];then
exStar= $(mount /dev/cdrom/mnt)
sleep 3s
echo="挂载中"
exLL=$(ls -l /mnt/Packages | wc -l)
if [[ $exLL > 0 ]];then
echo "挂载完成"
$(rpm -ivh /mnt/Packages/httpd-tools-2.*.rpm)
$(rpm -ivh /mnt/Packages/mailcap-2.*.rpm)
sleep 5s
cx=$(rpm -q httpd-tools)
ct=$(rpm -q mailcap)
resultx=""
if [[ $cx == 未* ]];then
resultx= "未找到依赖包tools"
elif [[ $ct == 未* ]];then
resultx= "未找到依赖包mailcap"
elif [[ $ct != 未* ]] && [[ $cx != 末* ]];then
echo "依赖包安装完成,开始安装httpd服务包。。"
$(rpm -ivh /mnt/Packages/httpd-2.*.rpm)
sleep 5s
echo "httpd安装完成,开始启动服务 "
tools=$(systemctl start httpd)
xl=$(netstat -antp | grep 80)
echo "$tools ---- $xl"
else
echo "$resultx"
fi
fi
else
echo "httpd 服务已经存在"
echo "$cmdPlay"
1.2 RPM 脚本分析
根据以脚本,我们可以从以下几个方面进行入手:
(1)代码的可复用性:以上代码的复用性很差,没有可调用的函数。
(2)代码的执行效率:执行效率相对较低,其中sleep 方法使用过于频繁,容易造成执行缓慢。
(3)代码逻辑性:代码中sleep的方式为了让上一步的命令执行完成后,再执行下一步,那么如果sleep时间已过,上一步依旧未执行完,该如何处理。
1.2.RPM 脚本优化
#!/bin/bash
#
#此处不做判断,已经挂载或者未挂载,都可以再此挂载一次。
function MountP(){
mount /dev/cdrom /mnt
}
#公用检测方式
function Checking()
{
if [ -d "/mnt/Packages" ];then
rpm -$1 $2 &>/dev/null
if [[ "$?" = 0 ]];then
return
else
return 1
fi
else
echo "挂载的文件不存在!"
fi
}
#检测并安装依赖包
function installTools(){
Checking q httpd-tools && echo "httpd-tools服务已经安装完毕" || `rpm -vih /mnt/Packages/httpd-tools-2.*.rpm &>/dev/null`
Checking q mailcap && echo "mailcap服务已经安装完毕" || `rpm -vih /mnt/Packages/mailcap-2*.rpm &>/dev/null`
}
#检测并安装RPM主服务
function installRPM(){
Checking q httpd && echo "httpd服务已经安装完毕" || `rpm -vih /mnt/Packages/httpd-2.*.rpm &>/dev/null`
}
#先执行 依赖包安装,wait是等待上个函数执行完成后,再执行RPM主服务的安装,确保依赖包已经完成安装。
MountP && wait && installTools && wait && installRPM
1.3.性能对比
使用原来的脚本执行安装,耗时在13秒左右
使用优化后的脚本安装,耗时不到1秒,以毫秒级别计算。
本文是rpm的安装脚本,至于yum的安装脚本,本人正在整理中,但是方式方法都差不多,唯一不同的是,有一些文件修改的方式,后续将会编辑发布。
以上是关于linux rpm自动化安装脚本编写及优化的主要内容,如果未能解决你的问题,请参考以下文章
Shell ❀ Linux系统自动挂载本地yum源并安装rpm依赖包
Shell ❀ Linux系统自动挂载本地yum源并安装rpm依赖包
Shell ❀ Linux系统自动挂载本地yum源并安装rpm依赖包