#主函数
function installCTIPatch
{
patchPackage=$1
#拼接出未解压的补丁压缩包全路径patchPath
patchPath=`echo "$HOME/$patchPackage" | awk -F . '{printf $1}'`
#判断补丁压缩包目录下是否存在文件,不存在就打印日志后退出
#if [ ! -d $patchPath ]
sumOfPatch=`ls -l $patchPath/*.zip | wc -l`
if [ 0 = $sumOfPatch ];
then
echo "[`date`]: the patchPackage [`echo $patchPath`] is not existed" >> $installLog
exit 1
fi
#检查当前版本是否可以打当前的补丁
#checkPatchVersion $patchPath
#获取补丁版本号
patchPackageVersion=`ls $patchPath | awk -F "_" '{print $1}'`
#解压补丁压缩包
echo "[`date`]: begin unzip *.zip" >> $installLog
unzip -o $patchPath/*.zip -d $patchPath
# #获取当前操作系统的解压后的补丁文件全路径package
# case $G_OS in
# "Linux") package=`echo "$patchPath/ICDV300R005C06SPC005_LINUX_ICD/Software/LINUX" | awk -F . '{printf $1}'`;;
# "AIX") package=`echo "$patchPath/ICDV300R005C06SPC005_AIX_ICD/Software/AIX" | awk -F . '{printf $1}'`;;
# "HP-UX") package=`echo "$patchPath/ICDV300R005C06SPC005_HP_RX_ICD/Software/HP_RX" | awk -F . '{printf $1}'`;;
# *) echo "[`date`]: the [`echo $G_OS`] patchPackage is not existed" >> $installLog;;
# esac
#获取当前操作系统的解压后的补丁文件全路径package
case $G_OS in
"Linux") package=`echo "$patchPath/""$patchPackageVersion""_LINUX_ICD/Software/LINUX"`;;
"AIX") package=`echo "$patchPath/""$patchPackageVersion""_AIX_ICD/Software/AIX"`;;
"HP-UX") package=`echo "$patchPath/""$patchPackageVersion""_HP_RX_ICD/Software/HP_RX"`;;
*) echo "[`date`]: the [`echo $G_OS`] patchPackage is not existed" >> $installLog;;
esac
#日志记录当前操作系统以及补丁包路径
echo "[`date`]: the os type is [`echo $G_OS`], the package path is [`echo $package`]" >> $installLog
#检查补丁包中是否包含icdcomm,如有则打icdcomm补丁,然后删除icdcomm补丁压缩包
checkAndInstallIcdcomm $package
#检查补丁包中是否包含ctiserver,如有则打ctiserver补丁,然后删除ctiserver补丁压缩包
checkAndInstallCTIServer $package
#检查补丁包中是否包含DLL/lib,如有则打DLL/lib补丁,然后删除DLL/lib补丁压缩包
checkAndInstallDll $package
#检查补丁包中是否包含cti剩余组件,如有则按统一规则打组件补丁,然后删除所有压缩包目录
checkAndInstallComponent $package
#补丁安装完后,判断是否有补丁压缩包目录(防止误删除),有则删除该目录
if [ -d $patchPath ]
then
echo "[`date`]: delete all patch" >> $installLog
# rm -rf $patchPath
fi
echo "[`date`]: upgrade finish" >> $installLog
}
#主函数调用
installCTIPatch $*
分享到:
相关推荐
linux sh脚本例程
Sh,Docker 运维好帮手,一招通过 sh 脚本批量快速启动和重启多个Docker 容器
开关过程中,免不了要操作linux系统,这是我在学习sh脚本过程中的总结。
ubuntu.sh脚本下载,用于LinuxonAndroid项目中的ubuntu 执行
外国大叔写的,不能翻墙的同学可以下载,sh脚本,所以应该mac和linux都能用,只是方便国内同学下载,不能保证版本最新,国内的同学说是protobuf2.5版本
此工具文件是一个脚本,将其赋权后,可以使用xcall.sh 来执行命令
在ssshHost.sh脚本中封装expect的ssh登录自动填充密码功能
安卓开机启动应用的.sh脚本示例(以scene为例),可以将脚本放在一个路径下,在init.rc里面去调用这个脚本,这样就可以实现开机自动打开某个APP
本篇将详细介绍如何创建一个名为"linux备份sh脚本.sh"的shell脚本来实现自动备份并上传至FTP服务器的功能。 首先,我们需要了解`sh`脚本是什么。`sh`是Bourne Shell的缩写,它是Unix/Linux系统中的一种命令解释器,...
wait-for-it.sh是一个Shell脚本,主要用于在Docker容器启动时等待某个服务(如数据库、消息队列等)变得可用。在某些分布式系统中,各个服务的启动顺序和依赖关系很重要,wait-for-it.sh可以帮助解决这个问题。
sh脚本文件,crontab自动处理脚本文件
vaspeqstress.sh脚本的原理是基于广义胡克定律,通过读取VASP输出的OUTCAR文件获得当前体系的所受外压矩阵,然后通过跟目标外压矩阵相减,获得下一步需要施加的外压矩阵Mad。接着,通过广义胡克定律,我们可以将Mad...
"强制关闭Tomcat sh脚本"是针对在Linux或Unix系统中管理Tomcat服务时,需要快速、安全地停止服务的一种方法。有时,由于各种原因,如应用程序挂起、内存溢出或其他系统问题,普通的`shutdown.sh`命令可能无法正常...
1、es.sh脚本(基础环境脚本) 2、docker-compose一键式部署配置脚本文件 部署方法: 1、下载es.sh+docker-compose一键部署7.9.3elk日志监控系统.zip压缩包 2、先执行es.sh基础环境脚本 sh es.sh 3、执行docker-...
本文将深入探讨"自己写的sh脚本文件.7z"中的核心概念,包括Shell脚本的基本结构、语法、常用命令以及如何进行调试和优化。 首先,让我们了解什么是Shell。Shell是操作系统提供的一个命令行接口,用户可以通过它与...
这篇博客“java调用bat批处理与sh脚本”将详细讲解如何在Java程序中实现这一功能。 首先,我们要理解Java是如何与操作系统进行交互的。Java提供了`Runtime`类和`ProcessBuilder`类,这两个类都可以用来执行外部命令...
shell脚本,搜索目录下所有目录以及文件并列出文件名称。shell脚本,搜索目录下所有目录以及文件并列出文件名称。shell脚本,搜索目录下所有目录以及文件并列出文件名称。
make-sh.sh脚本
Linux下部署Tomcat的脚本文件,用于Jenkins自动化部署环境的。具体使用方法请在我的博客中搜索:Jenkins自动化部署环境
docker.sh 脚本部署docker