shell语句中安装oracle准备

#! /bin/bash
read -p "请输入管理组名称:" dba
read -p "请输入安装组名称:" oinstall
read -p "请输入用户名称:" tester 
read -p "请输入用户密码:" pass
read -p "请输入Oracle安装路径目录:" mydir
read -p "请输入Oracle安装包文件名:" oracle_filename
read -p "请输入Oracle安装包如 ftp://10.109.149.202/download/Database/ 远程路径:" path

# 定义install函数
install(){
  cd /tmp
 
  if [ -f "$oracle_filename" ]
    then
       echo "文件存在!"
    else
       echo "文件不存在"
       echo "文件拷贝中..."
       wget $path$oracle_filename
       echo  "文件下载完成"
  fi    
   # 文件解压
     unzip $oracle_filename
   # 判断文件是否存在 
  if [ -d "database" ]
     then 
       echo "文件夹存在"
       cd /tmp/database
       ./runinstaller
     else
       echo “文件解压失败”
  fi
}


# 定义oracle安装函数
  oracle_install(){
  su - $tester
  # 判断当前用户是否为$tester
  if [ "$USER" == "$tester" ]
    then
       echo "当前用户是"$tester": "
       install
  else
       echo "当前用户不是"$tester": "
  fi

}

# 定义editenv函数
 editenv(){
    #进入用户目录
     cd /home/$tester
    #向文件中插入内容
     sed -i "10a ORACLE_BASE=/oracle" /home/$tester/.bash_profile
     sed -i "11a ORACLE_HOME=$mydir" /home/$tester/.bash_profile
     sed -i "12a ORACLE_SID=orcl" /home/$tester/.bash_profile
     sed -i "13a PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin" /home/$tester/.bash_profile
     sed -i "14a LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib" /home/$tester/.bash_profile
     sed -i "15a export ORACLE_BASE" /home/$tester/.bash_profile
     sed -i "16a export ORACLE_HOME" /home/$tester/.bash_profile
     sed -i "17a export ORACLE_SID" /home/$tester/.bash_profile
     sed -i "18a export PATH" /home/$tester/.bash_profile
     sed -i "19a export LD_LIBRARY_PATH" /home/$tester/.bash_profile
    # 更新文件内容
     source /home/$tester/.bash_profile
    # 判断
     if [ "$ORACLE_BASE"=="/oracle" ]
       then
          echo "环境变量文件配置成功!"
       else
          echo "环境变量文件配置失败!"
     fi
} 

#定义创建目录函数
 createdir(){

 mkdir -p $mydir 1>> /tmp/correct.txt 2>> error.txt
 if [ -d "$mydir" ]
   then
       echo "目录创建成功"
       # 修改 oracle 安装目录属主和属组
       chown  -R  "$tester"."$oinstall"  /oracle
       # 修改 oracle 安装目录操作权限 
       chmod  755  -R  /oracle
       editenv
  else
       echo "目录创建失败"
  fi
}

# 定义创建用户的函数
createuser(){
 # 新建用户,用户录属于 dba 和 oinstall 
 useradd $tester -g $oinstall -G $dba  1>> /tmp/correct.txt 2>> error.txt
 # 查看创建成功后添加到/etc/passwd文件中
 finduser=`grep "$tester" /etc/passwd |cut -d : -f 1`
  if [ "$finduser" == "$tester" ]
    then 
        echo "用户创建成功"
 # 修改密码
        echo "$pass" | passwd --stdin $tester 1>> /tmp/correct.txt 2>> /tmp/error.txt
        echo "密码修改成功"
#调用函数
        createdir
    else
        echo "用户创建失败"
  fi
}

creategrp(){
  #创建管理组
   groupadd $dba 1>> /tmp/correct.txt 2>> error.txt
   finddba=`grep "$dba" /etc/group |cut -d : -f 1`
  # 判断管理组是否存在
   if [ "$finddba" == "$dba" ]
    then
      echo "管理组创建成功"
      groupadd $oinstall 1>> /tmp/correct.txt 2>> error.txt
  # 查找安装组并定义变量
      findoinstall=`grep "$oinstall" /etc/group |cut -d : -f 1`
  # 判断安装组是否存在
      if [ "$findoinstall" == "$oinstall" ]
         then
            echo "安装组创建成功"
  #调用创建用户组函数
            createuser
         else
            echo  "安装组创建失败"
      fi 
    else
        echo  "管理组创建失败"
    fi
}


# 判断当前用户是否为ROOT
if [  "$USER" == "root" ]
then
   echo "当前用户是root"
   creategrp
   oracle_install
else
   echo "当前用户不是root"
fi

  

  

posted @ 2023-07-03 08:31  雨夜清风  Views(15)  Comments(0Edit  收藏  举报