暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

oracle11.2在centos7下的安装依赖检查及自动安装

原创 shifouwan 2022-06-19
1069
#!/bin/bash # 编写人员:shifouwan 2022-06-10 # 使用说明:1)需要赋予chmod +x执行权限 2)确保yum源正常 3)适用范围CentOS7.x安装Oracle11.2 # 日志记录 checklog="check_`date +"%Y%m%d"`.log" echo -e "\e[1;33m-----自动执行Oracle11g安装依赖检查-----\e[0m" echo -e "开始检查: `date +'%Y-%m-%d %T'`\n" >> $checklog # centos7安装oracle11g需要的依赖包,其他操作系统可从下面链接获取需要的依赖包替换checklists # https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCGJCEA checklists=( binutils-2.23.52.0.1-12.el7.x86_64 compat-libcap1-1.10-3.el7.x86_64 compat-libstdc++-33-3.2.3-71.el7.i686 compat-libstdc++-33-3.2.3-71.el7.x86_64 gcc-4.8.2-3.el7.x86_64 gcc-c++-4.8.2-3.el7.x86_64 glibc-2.17-36.el7.i686 glibc-2.17-36.el7.x86_64 glibc-devel-2.17-36.el7.i686 glibc-devel-2.17-36.el7.x86_64 ksh libaio-0.3.109-9.el7.i686 libaio-0.3.109-9.el7.x86_64 libaio-devel-0.3.109-9.el7.i686 libaio-devel-0.3.109-9.el7.x86_64 libgcc-4.8.2-3.el7.i686 libgcc-4.8.2-3.el7.x86_64 libstdc++-4.8.2-3.el7.i686 libstdc++-4.8.2-3.el7.x86_64 libstdc++-devel-4.8.2-3.el7.i686 libstdc++-devel-4.8.2-3.el7.x86_64 libXi-1.7.2-1.el7.i686 libXi-1.7.2-1.el7.x86_64 libXtst-1.2.2-1.el7.i686 libXtst-1.2.2-1.el7.x86_64 make-3.82-19.el7.x86_64 sysstat-10.1.5-1.el7.x86_64 unixODBC-2.3.1-6.el7.x86_64 or later unixODBC-2.3.1-6.el7.i686 or later unixODBC-devel-2.3.1-6.el7.x86_64 or later unixODBC-devel-2.3.1-6.el7.i686 or later ) # 进度条参数 pr_str='#' pr_ch=('|' '\' '-' '/') pr_sum=${#checklists[@]} # 检查未通过 check_fail=0 # 遍历依赖数组并执行安装 for ((i=0;i<${#checklists[@]};i++)) do # 进度条增加进度 pr_str+='#' # s为列表值,str是处理过带*的值 str="" s=${checklists[i]} # 判断是否包含+,如果包含,则删除自右边开始往左数第一个+以及往右的所有内容,后面为拼装内容 if [[ "$s" =~ "+" ]] then str=${s%+*}"+*" # 如:gcc-c++-4.8.2-3.e17.x86_64 处理完为:gcc-c++* # 判断是否包含-,如果包含,则删除自右边开始往左数第一个-以及往右的所有内容,后面为拼装内容 elif [[ "$s" =~ "-" ]] then str=${s%%-*}"*" # 如:binutils-2.23.52.0.1-12.e17.x84_64 处理完:binutils* # 判断是否包含or或者later,如果包含,直接跳过 elif [[ "$s" =~ "or" ]] || [[ "$s" =~ "later" ]] then continue # 除上面情况,直接截取全部 else str=${s:0}"*" # 如:ksh 处理完:ksh* fi # 查询是否已经安装 query_rslt=`rpm -qa | grep ${str%%\*}` # 如果未安装,则使用yum安装 if [[ !($query_rslt =~ ${str%%\*}) ]] then echo -e "\n开始自动安装:\e[1;35m$s\e[0m" >> $checklog yum install -y $str >> $checklog 2>&1 # yum安装完验证是否已经安装成功 query_rslt_check=`rpm -qa | grep ${str%%\*}` if [[ !($query_rslt_check =~ ${str%%\*}) ]] then echo -e "\n\e[1;31m--yum安装失败:$s\e[0m" check_fail=$(($check_fail+1)) fi fi # 进度条显示 printf "[%-"$pr_sum"s][%d%%][%c]\r" $pr_str $(((i+1)*100 / pr_sum)) ${pr_ch[$i%4]} done # 存在未通过检查的依赖包 if [ $check_fail == 0 ] then echo -e "\n\e[1;32m检查通过,依赖包已全部安装\e[0m" | tee -a $checklog else echo -e "\n共有\e[1;31m$check_fail条\e[0m检查未通过,自动安装失败,请手动执行安装" | tee -a $checklog fi echo -e "\n结束检查: `date +'%Y-%m-%d %T'`" >> $checklog echo "日志存放路径:`pwd`/$checklog" exit
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论