######################################################################
#
# 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
}