install 3

来源:互联网 发布:迈达斯待遇知乎 编辑:程序博客网 时间:2024/05/29 10:34


######################################################################
#
#   FUNCTION   : exeSQL
#   DESCRIPTION: 执行SQL脚本函数       
######################################################################
function execSQL()
{
 
    SQLList=(`ls $1`)
   
    typeset -i index
    index=0;
    for loop in ${SQLList[@]}
    do
         echo "$1${SQLList[$index]} start" >> ${LOGFILE}
        su - ${DBUSER} -c "${SQLPLUS} $DBusergenex/$variablegenex  <<EOF
        start  $1${SQLList[$index]};
        disc;
        quit;
        EOF" >> ${LOGFILE} 2>&1  
  echo "$1${SQLList[$index]} end" >> ${LOGFILE}
        index=${index}+1;
    done
}

function StartSQL()
{
    #增加权限
    chmod 777 $LOGFILE
    chmod -R 777 $PACKAGE_PATH/
    #从dos转换到unix
    dos2unix $PACKAGE_PATH/Database/01.Initialize/*  >>/tmp/dostounix.log  2>&1
    dos2unix $PACKAGE_PATH/Database/02.Insert/*      >>/tmp/dostounix.log  2>&1
    dos2unix $PACKAGE_PATH/Database/03.Function/*    >>/tmp/dostounix.log  2>&1 
    dos2unix $PACKAGE_PATH/Database/04.Procedure/*   >>/tmp/dostounix.log  2>&1
    dos2unix $PACKAGE_PATH/Database/05.Job/*         >>/tmp/dostounix.log  2>&1
    printf " sql script dos2unix ok!dostounix.log into tmp \n\r"
   
    #create table
    tblsqldir=$PACKAGE_PATH"/Database/01.Initialize/"
    execSQL $tblsqldir

    #insert data
    tblsqldir=$PACKAGE_PATH"/Database/02.Insert/"
    execSQL $tblsqldir
   
    #create function
    tblsqldir=$PACKAGE_PATH"/Database/03.Function/"
    execSQL $tblsqldir
   
    #create procdure
    tblsqldir=$PACKAGE_PATH"/Database/04.Procedure/"
    execSQL $tblsqldir
   
    #create job
    tblsqldir=$PACKAGE_PATH"/Database/05.Job/"
    execSQL $tblsqldir
}


######################################################################
#
#   FUNCTION   : initDatabase
#   DESCRIPTION: 完成chrdb数据库的初始化工作,包括数据库恢复,表空间创建,
#                以及执行各业务sql脚本等操作
######################################################################
initDatabase()
{

    #测试启动是否成功
    startDB
    if [ 0 -ne $? ]
    then    
        gLINENUM=${LINENO}
        log " Failed to start ${DBNAME}, quit installation. " "p"
        gLINENUM=0;
    fi   

    #启动数据库后,打开监听端口
    startListener
  
    #配置数据库相关信息 
    ConfigDB
    sleep 10s
    printf "Database initialization ok!\n\r"
   
    sleep 2s
}


######################################################################
#
#   FUNCTION   : autostart_svc
#   DESCRIPTION: 设置开机自启动服务和数据库
######################################################################
function autostart_svc()
{
    #suse10下/etc/rc.d只是一个到/etc/init.d的链接
    cp -af $PACKAGE_PATH/cfg/rsau_svc /etc/init.d/ >> $LOGFILE 2>&1
    chmod 744 /etc/init.d/rsau_svc >> $LOGFILE 2>&1

    #向系统注册开机启动服务,根据genex_svc中的设置,默认会在3和5级模式下各创建两个启停文件
    insserv /etc/init.d/rsau_svc >> $LOGFILE 2>&1
    printf "boot-strap Service register ok!\n\r"
    sleep 2s
}

#####################################################################
#
#   FUNCTION openAssignment
#   DESCRIPTION: 开启操作系统计划任务开关
#   PARAMETER:
#   OUT      :
#          
#####################################################################
openAssignment()
{
    gLINENUM=${LINENO}
    log "Go to openAssignment."
    gLINENUM=0;
   
    /etc/init.d/cron start >> ${LOGFILE} 2>&1
       
    gLINENUM=${LINENO}
    log "Starting CRON daemon successful."
    gLINENUM=0;
    printf "open Assignment ok!\n\r"
    sleep 2s
    return 0
}

######################################################################
#
#   FUNCTION   : setcron
#   DESCRIPTION: 设置系统定时任务
######################################################################
function setcron()
{   
    #在/etc/sudoers文件中加入genex   ALL=(ALL)       NOPASSWD:/etc/init.d/cron
    ModSudo $ProductUser
    if [ 0 -ne $? ]
    then
        gLINENUM=${LINENO}
        log "Failed to modify /etc/sudoers for $DBUSER , please check." "p"
        gLINENUM=0;        
    fi
   
    #备份crontab
    cp -af /etc/crontab /etc/crontab.bak >& $NULL
    #拷贝crontab
   crontab -u $ProductUser $PACKAGE_PATH/cfg/genex.cron >& $NULL  

    #导入root的计划任务文件
    #crontab $PACKAGE_PATH/cfg/root.cron  >> $LOGFILE 2>&1
   
    printf "crontab task ok!\n\r"
    sleep 2s
}

 

#####################################################################
#
#   FUNCTION : SetProSysFile
#   DESCRIPTION : 设置产品用户的.profile和.bashrc文件
#####################################################################
SetProSysFile()
{
    #设置.profile文件
    USER_HOME=`finger omcuser | grep Directory | awk '{print $2}'`
    ProductPROFILE=${USER_HOME}/.profile >> ${LOGFILE}

    cp -af $PACKAGE_PATH/cfg/.profile $ProductPROFILE
      
    sh $ProductPROFILE    
   
    #设置.bashrc文件
    ProductBashrc=${USER_HOME}/.bashrc   
    result=`cat $ProductBashrc | grep ". ${USER_HOME}/.profile"`
    if [ "-" == "-${result}" ]
    then
        echo ". ${USER_HOME}/.profile" >> $ProductBashrc
    fi
  
    #拷贝alias
    cp -af $PACKAGE_PATH/cfg/.alias ${USER_HOME}/ >& $NULL 
 
    printf "environment variable initialization ok!\n\r" 
    sleep 2s
    return 0  
}

######################################################################
#   目录链接
#   FUNCTION :create directory connection
#   PARAMETER:nothing
#   OUT      :noting
######################################################################
function dir_link()
{
  rm -rf /export/home/RSAU
  mv $targetDir /export/home/>/dev/null 2>&1
  sleep 0.5s
  unlink /opt/RSAU >/dev/null 2>&1
  ln -s /export/home/RSAU  /opt/
  printf "directory link ok!\n\r"
  sleep 2s
}

function cpfiles()
{
 mkdir -p $targetDir
 cp -af $PACKAGE_PATH/* $targetDir
 mv $targetDir/cfg/svc_adm $targetDir/bin/svc_adm
 chown -R  $ProductUser:$ProductGroup $targetDir
 chown -R  $ProductUser:$ProductGroup /opt/RSAU/*
 chmod -R 777 $targetDir
 chmod -R 777 /opt/RSAU
 printf "copy files ok!\n\r"
 sleep 10s
}

原创粉丝点击