#! /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