Files
build.ems/extra/wxc2_emsInstall
2025-02-27 11:26:39 +08:00

34 KiB

#!/bin/bash
 
###############################################################################
# My Function
###############################################################################
 
encryptionBin=`pwd`"/mssBak/script/encryption"
 
#mysql_user=`$encryptionBin 1 "6266706d736f7a7c7b6b7f7b7f"`
#mysql_pw=`$encryptionBin 1 "2b3a392757557b697b7e7e757b777c"`
 
mysql_user=administrator
mysql_pw=*86#ROtartsinim
 
myShowTitle()
{
#thisVersion=`cat ./emsVersion |grep Version|awk '{print $2}'`
#clear
#echo -e "10 WELCOME to INSTALL AGrandTech litCore Soft Switch EMS $thisVersion !
#"
echo "+-----------------------------------------------------------------------------+"
echo -e "60 $1
"
echo "+-----------------------------------------------------------------------------+"
}
 
myShowResultOrg()
{
if [ "$1" = "OK" ] || [ "$1" = "ok" ] ; then
echo " [ OK ]
$2"
elif [ "$1" == "FAILED" ] || [ "$1" == "failed" ] ; then
echo " [FAILED]
$2"
else
echo " [ $1 ]
$2"
fi
}
 
myShowResult()
{
if [ "$1" = "OK" ] || [ "$1" = "ok" ] ; then
echo " [ OK ]
$2"
elif [ "$1" == "FAILED" ] || [ "$1" == "failed" ] ; then
echo " [FAILED]
$2"
else
echo " [ $1 ]
$2"
fi
}
 
#useage:myAddUser $userName $userPwd $groupName $homeDir $remark $shType
myAddUser()
{
echo "Add user $1 ..."
groupadd -f $3
useradd -c "$5" -g $3 -d $4 -s $6 $1 2>>/dev/null
echo "$2" | passwd --stdin $1
chown -R $1:$3 $4
}
 
#useage: upGradeDb $dbName $tableName
upGradeDb()
{
echo -n "Upgrade $1.$2"
if [ `uname -r |grep -c '2.4.7-10'` -eq 1 ] ; then
dataDir="/usr/local/mysql/data"
mysqlBinDir="/usr/local/mysql/bin"
else
dataDir="/usr/local/mysql"
mysqlBinDir="/usr/bin/"
fi
rm -rf $dataDir/$1_BK
cp -r /usr/local/omcBak/data/$1 $dataDir/$1_BK
chgrp -R mysql $dataDir/
chown -R mysql $dataDir/
chmod -R 755 $dataDir/
 
tableArr=`echo "show tables from $1_BK like '$2';"|$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw | sed -e '1d'`
 
for table in $tableArr; do
if ( test -e "$dataDir/$1/$table.frm" ) then
diffFlag_frm=`diff $dataDir/$1/$table.frm $dataDir/$1_BK/$table.frm`
else
continue
fi
 
if [ "$diffFlag_frm" != "" ] ; then
echo "show fields from $1.$table;"|$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw | sed -e '1d' > /tmp/upGradeTmp
echo "show fields from $1_BK.$table;"|$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw | sed -e '1d' > /tmp/upGradeTmp1
diff -C0 /tmp/upGradeTmp /tmp/upGradeTmp1 | awk '$1 ~/+/{print "ALTER TABLE " "'$1'" "_BK." "'$table'" " DROP " $2 ";"}' |$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw
fieldArr=`echo "show fields from $1_BK.$table;"|$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw | sed -e '1d' | awk '{print $1}'`
 
tmpStr=""
for tmpField in $fieldArr; do
if [ "$tmpStr" = "" ] ; then
tmpStr=$tmpStr$tmpField
else
tmpStr=$tmpStr","$tmpField
fi
done
 
#echo "$tmpStr"
 
rm -f /tmp/tmpContent
 
echo "select * into outfile '/tmp/tmpContent' fields terminated by '\',\'' from $1_BK.$table;" |$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw
tmpChar="'"
#cat /tmp/tmpContent | sed -e s/'\\\N'/NULL/g | sed -e s/\'NULL\'/NULL/g |awk '{print "replace into " "'$1'" "." "'$table'" " (" "'$tmpStr'" ") values (" "'$tmpChar'" $0 "'$tmpChar'" ");"}'
cat /tmp/tmpContent | sed -e s/'\\\N'/NULL/g | sed -e s/\'NULL\'/NULL/g |awk '{print "replace into " "'$1'" "." "'$table'" " (" "'$tmpStr'" ") values (" "'$tmpChar'" $0 "'$tmpChar'" ");"}' |$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw
else
echo "replace into $1.$table select * from $1_BK.$table" |$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw
fi
echo -n "."
done
 
chgrp -R mysql $dataDir/
chown -R mysql $dataDir/
chmod -R 755 $dataDir/
 
rm -f /tmp/upGradeTmp
rm -f /tmp/upGradeTmp1
rm -f /tmp/tmpContent
 
rm -fr $dataDir/$1_BK
 
myShowResult "OK"
}
 
###############################################################################
if [ `hostname -s 2>&1 |grep -c "failure"` -eq 1 ] ;then
echo "############################### Warning #######################################"
echo "# Please configure the /etc/hosts, add host like following #"
echo "# 172.18.128.1 omc-0.iwv omc-0 #";
echo "###############################################################################";
myShowTitle "Install exit."
exit
fi
 
 
hostname=`hostname -s|awk -F'-' '{print $1}'`
if [ `grep -c "$hostname-[01].*$hostname-[01]" /etc/hosts` -eq 0 ] ;then
echo "############################### Warning #######################################"
echo "# Please configure the /etc/hosts, add host like following #"
echo "# 172.18.128.1 omc-0.iwv omc-0 #";
echo "###############################################################################";
myShowTitle "Install exit."
exit
fi
# Operation system version
osversion=`uname -a`
if [ `echo $osversion|grep -c "2.6.18-92.el5"` -eq 1 ] ;then
isCentOS=1
else
isCentOS=0
fi
 
if [ $isCentOS -eq 0 ] ;then
mkdir -p /home/ems
chmod -R 700 /home/ems
chown -R ems:omc /home/ems
usermod -d /home/ems ems
fi
 
#sed '/mysql/d' /etc/vsftpd/ftpusers > /etc/vsftpd/a.out
#echo "mysql" >> /etc/vsftpd/a.out
#mv -f /etc/vsftpd/a.out /etc/vsftpd/ftpusers
 
sed '/mysql/d' /etc/ftpusers > /etc/a.out
echo "mysql" >> /etc/a.out
mv -f /etc/a.out /etc/ftpusers
 
sed '/mysql/d' /etc/vsftpd.ftpusers > /etc/b.out
echo "mysql" >> /etc/b.out
mv -f /etc/b.out /etc/vsftpd.ftpusers
clear
 
thisVersion=`cat ./emsVersion |grep Version|awk '{print $2}'`
echo "WELCOME to INSTALL AGrandTech litCore Soft Switch EMS $thisVersion !"
if [ `whoami` != "root" ] ; then
myShowTitle "Just root user can install EMS"
exit
fi
 
if [ `pwd|grep -c "htdocs"` -gt 0 ] ; then
myShowTitle "Can not install EMS in this directory! (default is /usr/local/src)"
exit
fi
 
if [ "$1" == "-auto" ] ; then
isAutoInstall=1
else
isAutoInstall=0
fi
 
thisVersion=`cat ./emsVersion |grep Version|awk '{print $2}'`
isNeedReboot=0
 
omcWebName='wxc2_omc'
omcdName='wxc2_omcd'
isInstalledOmc=0
srcDir=`pwd`
srcBinDir=$srcDir/bin
srcSrcDir=$srcDir/src
srcConfDir=$srcDir/config
srcWebDir=$srcDir/web
srcDataDir=$srcDir/data
srcRelsDir=$srcDir/release
srcToolsDir=$srcDir/tools
srcMssBakScriptDir=$srcDir/mssBak/script
srcMssBakDataDir=$srcDir/mssBak/mssBakData
 
omcDir=/usr/local/omc
dstBinDir=$omcDir/bin
dstSrcDir=$omcDir/src
dstConfDir=$omcDir/config
phpIniDir=/etc/php/5.6/apache2/
dstWebDir=/usr/local/apache/htdocs
dstDbBackup=/db_backup
if [ `uname -r |grep -c '2.4.7-10'` -eq 1 ] ; then
dstDataDir=/usr/local/mysql/data
mysqlBinDir=/usr/local/mysql/bin
else
dstDataDir=/usr/local/mysql
mysqlBinDir=/usr/bin
fi
 
 
dstRelsDir=$omcDir/release
dstToolsDir=/usr/local/omc/tools
dstMssBakScriptDir=/usr/local/mssBak/script
dstMssBakDataDir=/usr/local/apache/htdocs/mssBakData
 
#initDir=/etc/rc.d/init.d
initDir=/etc/init.d
 
mkdir -p /usr/local/apache/htdocs
 
if [ "$isAutoInstall" == "0" ] ; then
echo "==========================================="
echo -n "Are you sure to install this EMS?(y/n)"
read sureInstall
if [ "$sureInstall" != "y" ] && [ "$sureInstall" != "Y" ] ; then
myShowTitle "Install exit."
exit
fi
fi
 
 
###############################################################################
# 1.Check this system
###############################################################################
#Check installed omc's version
if (test -x $initDir/omcd) && [ "$isAutoInstall" == "0" ] ; then
isInstalledOmc=1
 
myShowTitle "Please Select Installation Mode "
 
#echo "=============Installation History ============"
#`omcd version`
#cat $omcDir/install.log |grep Version
#echo "==========================================="
 
#Get install mode
echo "=========== Installation Mode ============="
echo "==1.Initialize Database and Software =="
echo "==2.Upgrade Software =="
echo "==0.Exit =="
echo "==========================================="
echo -n "Please select Installation Mode.(0/1/2):"
read installMode
 
case "$installMode" in
'1')
clear
myShowTitle "You have selected 'Initialize Database and Software' mode."
#Check free space of hard disk
#freeDiskMB=`df -m |grep /usr|grep dev|awk '{print $4}'`
freeDiskMB=$(df -m /usr | awk 'NR==2 {print $4}')
echo "There is $freeDiskMB MB available space in /usr"
if [ $freeDiskMB -lt 2000 ]; then
echo "EMS need 2G disk space,No enough space in /usr !!"
df -h /usr
exit
fi
;;
'2')
clear
myShowTitle "You have selected 'Upgrade Software' mode."
echo "Installed `tail -4 $omcDir/install.log|grep Version`"
 
;;
*)
myShowTitle "Install exit."
exit
;;
esac
else
if [ "$isAutoInstall" == "1" ] ; then
myShowTitle "Install EMS by auto mode"
else
myShowTitle "Ready for installing EMS"
fi
installMode=1
fi
 
#stopList="omcd httpd mysql"
stopList="omcd apache2 mysql"
for procName in $stopList; do
if ( test -e "$initDir/$procName" ) then
echo "Shutdown $procName..."
#$initDir/$procName stop
service $procName stop
fi
if [ -n "`pidof $procName`" ] ;then
kill -9 `pidof $procName`
fi
done
 
if [ -n "`pidof httpd`" ] ;then
kill -9 `pidof httpd`
fi
 
if [ -n "`pidof mysqld`" ] ;then
kill -9 `pidof mysqld`
fi
 
 
 
###############################################################################
# 2.Change system configure
###############################################################################
 
myShowTitle "Checking system configuration"
echo -n "Check user...."
#Step 1:Add User
#By fuction:myAddUser $userName $userPwd $groupName $homeDir $remark $shType
 
#add user www
#if [ `grep -c "www:x" /etc/passwd` -eq 0 ] ; then
# myAddUser "www" "123456" "omc" "/usr/local/apache/htdocs" "web operator" "/bin/bash"
#fi
 
myShowResult "OK"
 
#Step 2:Set system Time
#echo -n "Set system clock.... "
#set time zone = GMT
#rm /etc/localtime
#cp -f /usr/share/zoneinfo/GMT /etc/localtime
 
#sync sysclock to hardware clock
#hwclock --systohc
 
#myShowResult "OK"
 
#Step 3:Set path in profile
echo -n "Set path....."
 
if [ `grep -c "/etc/rc.d/init.d" /etc/profile` -eq 0 ] ; then
echo "PATH=/etc/rc.d/init.d:\$PATH" >> /etc/profile
fi
myShowResult "OK"
 
sleep 2
###############################################################################
# 3.Install omc files
###############################################################################
myShowTitle "Copying EMS files (Backup old files to /usr/local/omcBak)"
 
#backup the omc/bin/conf
if [ "$installMode" == "2" ] ; then
orignalConfDir=$dstBinDir/conf
bk_conf_file_list="iptrans.conf mtp3.conf NR.conf sccp.conf smeg.conf smpp.conf system.ini welcomeSMS.conf snmp.conf omctrap_iplist.conf mcms_conf.txt"
for conf_file in $bk_conf_file_list; do
if [ -f $orignalConfDir/$conf_file ] ;then
cp -f $orignalConfDir/$conf_file /tmp/
fi
done
 
#backup the dual sync data
if [ -f /usr/local/omc/bin/dual/cdr_io_proc ] ;then
rm -rf /usr/local/cdr_io_proc
cp -Rf /usr/local/omc/bin/dual/cdr_io_proc /usr/local/
fi
if [ -f /usr/local/omc/bin/dual/cdr_data_proc ] ;then
rm -rf /usr/local/cdr_data_proc
cp -Rf /usr/local/omc/bin/dual/cdr_data_proc /usr/local/
fi
fi
 
#step 1:Create bak up dir
mkdir -p $omcDir
omcBakDir=/usr/local/omcBak
mkdir -p $omcBakDir
rm -rf $omcBakDir/*
 
#Step 2:Copy bin files
if [ "$installMode" == "2" ] ; then
echo -n "Copy bin files ...."
mkdir -p $dstBinDir
cp -rf $dstBinDir $omcBakDir/
#rm -rf $dstBinDir/*
#cp -f $srcBinDir/* $dstBinDir
# only copy bin file exclude subdirectory (conf, mib, ...)
find $srcBinDir -maxdepth 1 -type f -exec cp -f {} $dstBinDir \;
# update subdirectory mib, daul.
cp -rf $srcBinDir/mib/* $dstBinDir/mib
cp -rf $srcBinDir/dual $dstBinDir/dual
chmod +x $dstBinDir/*
myShowResult "OK"
else
echo -n "Copy bin files ...."
mkdir -p $dstBinDir
cp -rf $dstBinDir $omcBakDir/
rm -rf $dstBinDir/*
cp -rf $srcBinDir/* $dstBinDir
chmod +x $dstBinDir/*
myShowResult "OK"
fi
 
#Step 3:Copy web files
echo -n "Copy web files ...."
#needKeepDirList="ftpFile db_backup/cdr db_backup/other db_backup/paramConf db_backup/csta db_backup/subsData db_backup/meetConf db_backup/alarmLog db_backup/operLog tftp"
#needKeepDirList="ftpFile db_backup/cdr db_backup/other db_backup/paramConf db_backup/csta db_backup/subsData db_backup/meetConf db_backup/alarmLog db_backup/operLog"
 
if ( test -d "$dstWebDir/ftpFile" ) then
echo -n "."
else
mkdir -p $dstWebDir/ftpFile
echo -n "."
fi
needKeepDirList="cdr other paramConf csta subsData meetConf alarmLog operLog cdrsending cdrsent cstasending cstasent"
for tmpDir in $needKeepDirList; do
if ( test -d "$dstDbBackup/$tmpDir" ) then
echo -n "."
else
mkdir -p $dstDbBackup/$tmpDir
echo -n "."
fi
done
ln -fs $dstDbBackup $dstWebDir/
rm -f $dstDbBackup/db_backup
chown -R mysql:mysql $dstDbBackup
 
cp -rf $srcWebDir/index.php $dstWebDir/
 
if [ -L $dstWebDir/$omcWebName ] ;then
rm -f $dstWebDir/$omcWebName
fi
 
if ( test -d "$dstWebDir/omcWeb" ) then
mv $dstWebDir/omcWeb $omcBakDir/
else
if ( test -d "$dstWebDir/$omcWebName" ) then
mv $dstWebDir/$omcWebName $omcBakDir/
fi
fi
cp -Rf $srcWebDir/$omcWebName $dstWebDir/
 
#ln -s $dstWebDir/omcWeb $dstWebDir/$omcWebName
if [ $isCentOS -eq 1 ] ;then
chown -R www:omc $dstWebDir
else
chown -R www-data:www-data $dstWebDir
fi
 
# Change the permission of the wxc2_omc
dir_mode=500
file_mode=400
mod_dir=$dstWebDir/$omcWebName/
chmod $dir_mode $mod_dir
cd $mod_dir
obj_list="`ls -R`"
for obj in $obj_list; do
if [ `echo $obj|grep -c '^\.'` -gt 0 ] ;then
#echo $obj is a dir
cur_dir="`echo $obj|awk -F: '{print $1}'`"
chmod $dir_mode $cur_dir
else
#echo $obj is file,cur_dir=$cur_dir chmod $dir_mode $cur_dir/$obj
chmod $file_mode $cur_dir/$obj
fi
done
needExcuteFileList="configuration/mscSync/getFile configuration/mscSync/put configuration/mscSync/putFile configuration/mscSync/startMsc configuration/mscSync/stopMsc configuration/nibConf/beforeClearSubs configuration/nibConf/beforeFtp configuration/nibConf/bssReboot configuration/nibConf/mssStart"
for file in $needExcuteFileList; do
chmod 500 $dstWebDir/$omcWebName/$file
done
chmod -R 700 /usr/local/apache/htdocs/wxc2_omc/performance
if [ $isCentOS -eq 1 ] ;then
cp -f /usr/local/apache/htdocs/wxc2_omc/security/login/login.php_centos /usr/local/apache/htdocs/wxc2_omc/security/login/login.php
chmod 400 /usr/local/apache/htdocs/wxc2_omc/security/login/login.php
chown www /usr/local/apache/htdocs/wxc2_omc/security/login/login.php
chgrp omc /usr/local/apache/htdocs/wxc2_omc/security/login/login.php
fi
 
#needRwxDirList="ftpFile db_backup tftp"
needRwxDirList="ftpFile db_backup"
for tmpDir in $needRwxDirList; do
chmod -R 755 $dstWebDir/$tmpDir
done
#chown -R mysql $dstWebDir/db_backup
#chgrp -R mysql $dstWebDir/db_backup
myShowResult "OK"
 
chmod 777 $dstWebDir/ftpFile
if [ $isInstalledOmc -gt 0 ] ; then
myShowTitle "Copying database files (Backup old files to /usr/local/omcBak)"
echo -n "Backup database files...."
mkdir -p $omcBakDir/data
needBakDbList=`ls -l $dstDataDir/|grep drwx|awk '{print $9}'`
for tmpDb in $needBakDbList ; do
cp -rf $dstDataDir/$tmpDb $omcBakDir/data
echo -n "."
done
 
myShowResult "OK"
else
myShowTitle "Copying database files"
fi
 
#Copy database file
echo -n "Copy database files..."
 
if [ -d $dstDataDir/ESME_DB ] ;then
mv -f $dstDataDir/ESME_DB /tmp/
esme_exist=1
fi
 
if [ ! -d $dstDataDir ] ;then
mkdir $dstDataDir
chmod 755 -R $dstDataDir
chown mysql -R $dstDataDir
chgrp mysql -R $dstDataDir
fi
 
# by 2024/08/30 lai:order to keep sysUser
#rm -rf $dstDataDir/*
find $dstDataDir -type f ! -path "$dstDataDir/OMC_PUB/sysUser.MYD" ! -path "$dstDataDir/OMC_PUB/sysUser.MYI" ! -path "$dstDataDir/OMC_PUB/sysUser.frm" -exec rm -f {} \;
 
#needCopyDirList="mysql OMC* OBJ_* CDR_DB CSTA_DB AUC_DB HLR_DB EIR_DB PPS_DB VLR_DB VMS_DB MNP_DB OPR_DB SMCLI MME_DB UDM_DB OBJ_361 OBJ_362 OBJ_363 OBJ_365 OBJ_366 SPGW_DB"
needCopyDirList=`ls $srcDataDir`
 
#echo $needCopyDirList;
#for tmpDir in $needCopyDirList ; do
# cp -Rf $srcDataDir/$tmpDir $dstDataDir/
# echo -n "."
#done
 
# by 2024/08/30 lai:order to keep sysUser
for tmpDir in $needCopyDirList; do
if [[ $tmpDir == "OMC_PUB" ]]; then
mkdir -p "$dstDataDir/$tmpDir"
if [[ ! -e "$dstDataDir/$tmpDir/sysUser.MYD" && ! -e "$dstDataDir/$tmpDir/sysUser.MYI" && ! -e "$dstDataDir/$tmpDir/sysUser.frm" ]]; then
cp -Rf "$srcDataDir/$tmpDir/"* "$dstDataDir/$tmpDir/"
else
find "$srcDataDir/$tmpDir" -type f ! -name 'sysUser.MYD' ! -name 'sysUser.MYI' ! -name 'sysUser.frm' -exec cp -Rf {} "$dstDataDir/$tmpDir/" \;
fi
else
cp -Rf "$srcDataDir/$tmpDir" "$dstDataDir/"
fi
echo -n "."
done
 
 
if [ "$esme_exist" == 1 ] ;then
mv -f /tmp/ESME_DB $dstDataDir
fi
myShowResult "OK"
 
#delete the mysql link
if [ -L "/var/lib/mysql" ] ; then
if [ -n "`pidof mysqld`" ] ;then
kill -9 `pidof mysqld`
fi
rm -rf /var/lib/mysql
fi
 
#cp -f $srcConfDir/my.cnf /etc/my.cnf
 
#cp -rf $srcDataDir/mysql $dstDataDir
chown -R mysql $dstDataDir/
chgrp -R mysql $dstDataDir/
chmod -R 755 $dstDataDir/
 
#if ( test -e "$initDir/mysql" ) then
if ( test -e "$initDir/mariadb" && test -e "/usr/lib/systemd/system/mariadb.service" ) then
sed -i 's/ProtectSystem=full/ProtectSystem=false/g' /usr/lib/systemd/system/mariadb.service
systemctl daemon-reload
#$initDir/mysql start
service mysql start
sleep 2
else
myShowTitle "Can not Upgrade EMS.You have not installed the mysql"
exit
fi
 
#dataFileList=`ls -l ./data/|grep sql|awk '{print $9}'`
#for tmpFile in $dataFileList; do
# echo $tmpFile |awk -F"." '{print "CREATE DATABASE IF NOT EXISTS " $1 ";"}'|$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw
# cat ./data/$tmpFile |awk '$1 !~ /#/' |$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw
# echo -n "."
#done
#
#cp -rf $srcDataDir/OBJ_* $dstDataDir
 
#chown -R mysql $dstDataDir
#chgrp -R mysql $dstDataDir
#chmod -R 755 $dstDataDir
#
#myShowResult "OK"
 
if [ "$installMode" == "2" ] ; then
upGradeDb CDR_DB cdrFrom%
#upGradeDb CDR_DB cdrSource
 
#Upgrade CSTA_DB
rm -rf $dstDataDir/CSTA_DB_BK
cp -r $omcBakDir/data/CSTA_DB $dstDataDir/CSTA_DB_BK
chmod -R 755 $dstDataDir/CSTA_DB_BK
 
rm -f $dstDataDir/CSTA_DB/*Detail_*
rm -f $dstDataDir/CSTA_DB/*Sum_*
 
tableArr=`echo "show tables from CSTA_DB_BK like '%Detail';"|$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw | sed -e '1d'`
 
for table in $tableArr ; do
table_=$table"_"
 
#detail
tmpTableArr=`echo "show tables from CSTA_DB_BK like '$table_%';"|$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw | sed -e '1d'`
for tmpTable in $tmpTableArr ;do
rm -f $dstDataDir/CSTA_DB/$tmpTable.*
cp $dstDataDir/CSTA_DB/$table.frm $dstDataDir/CSTA_DB/$tmpTable.frm
cp $dstDataDir/CSTA_DB/$table.MYI $dstDataDir/CSTA_DB/$tmpTable.MYI
cp $dstDataDir/CSTA_DB/$table.MYD $dstDataDir/CSTA_DB/$tmpTable.MYD
done
 
#sum
sumTable=`echo "$table" | sed -e s/Detail/Sum/g`
table_=`echo "$table_" | sed -e s/Detail/Sum/g`
tmpTableArr=`echo "show tables from CSTA_DB_BK like '$table_%';"|$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw | sed -e '1d'`
for tmpTable in $tmpTableArr ;do
rm -f $dstDataDir/CSTA_DB/$tmpTable.*
cp $dstDataDir/CSTA_DB/$sumTable.frm $dstDataDir/CSTA_DB/$tmpTable.frm
cp $dstDataDir/CSTA_DB/$sumTable.MYI $dstDataDir/CSTA_DB/$tmpTable.MYI
cp $dstDataDir/CSTA_DB/$sumTable.MYD $dstDataDir/CSTA_DB/$tmpTable.MYD
done
done
 
rm -rf $dstDataDir/CSTA_DB_BK
 
chown -R mysql $dstDataDir/
chgrp -R mysql $dstDataDir/
chmod -R 755 $dstDataDir/
 
upGradeDb CSTA_DB %Detail_%
upGradeDb CSTA_DB %Sum_%
 
upGradeDb PPS_DB daily_report
 
upGradeDb OMC_PUB sysUser
#upGradeDb OMC_PUB sysMenuConf
upGradeDb OMC_PUB omcPubVarConf
upGradeDb OMC_PUB smcli%
upGradeDb PPS_DB used_card_info
upGradeDb RCM_RC_DB used_card_info
upGradeDb OMC_PUB hpmnConf
upGradeDb OMC_PUB wsmsMsgConf
upGradeDb OMC_PUB wsmsRoamer
upGradeDb OMC_PUB wsmsServConf
upGradeDb OMC_PUB cdrNotifyConf
upGradeDb BssOmcDb OMCR_ALARMEVENT
upGradeDb BssOmcDb OMCR_BtsMeasurements
upGradeDb BssOmcDb OMCR_BSSTABLE
#releaseV1.00.04 added by fj 20180101
upGradeDb SMCLI subscriber
upGradeDb OBJ_330 subsParamConf_1
 
# update "OBJ_360.subsParamConf_1" field setTemplate_2 to empty
#echo "update OBJ_360.subsParamConf_1 set setTemplate_2 to empty"
echo "update OBJ_360.subsParamConf_1 set setTemplate_2='' where keyId=1" |$mysqlBinDir/mysql -u$mysql_user -p$mysql_pw
 
noOverWriteDB="OBJ_325 OBJ_330 OBJ_340 OBJ_360 OBJ_395 OBJ_370 OBJ_375 OBJ_380 OBJ_390"
for tmp_file in $noOverWriteDB; do
upGradeDb $tmp_file subsParamConf_%
done
 
chown -R mysql $dstDataDir/
chgrp -R mysql $dstDataDir/
chmod -R 755 $dstDataDir/
 
 
#hide the old MSC menu
#echo "update OMC_PUB.sysMenuConf set privilege='-1' where level_1=2 and level_2=1 and level_3=9" | $mysqlBinDir/mysql -u$mysql_user -p$mysql_pw
 
 
fi
 
#step 4:Copy config files
echo -n "Copy configuration files ...."
mkdir -p $dstConfDir
cp -r $dstConfDir $omcBakDir/
rm -rf $dstConfDir/*
cp -rf $srcConfDir/* $dstConfDir/
myShowResult "OK"
 
#step 5:Copy tools files
echo -n "Copy tools files ...."
mkdir -p $dstToolsDir
cp -r $dstToolsDir $omcBakDir/
rm -rf $dstToolsDir/*
cp -rf $srcToolsDir/* $dstToolsDir/
cp -rf $dstToolsDir/functions /etc/init.d/
myShowResult "OK"
 
#./checkExpect
#install expect tool
if [ ! -f /usr/bin/expect ] && [ ! -f /usr/local/bin/expect ] ;then
cp -f $srcToolsDir/expect/expect /usr/bin
cp -f $srcToolsDir/expect/expect /usr/local/bin
chmod 755 /usr/bin/expect
chmod 755 /usr/local/bin/expect
#rm -rf /usr/bin/expect
#rm -rf /usr/local/bin/expect
#expect_package=`dpkg -l expect`
#if [ `echo $expect_package |grep -c 'not'` -eq 1 ] ; then
# rpm -ivh expect-5.42.1-1.i386.rpm
#else
# `rpm -e $expect_package`
# rpm -ivh expect-5.42.1-1.i386.rpm
fi
 
#install phpMyAdmin
#USER=root
#PORT=3306
#HOST=localhost
#sql_phpmyadmin_user="grant all privileges on *.* to phpmyadmin@'localhost' IDENTIFIED BY 'admin123@EMS';flush privileges;"
echo -n "Install phpMyAdmin ..."
rm -rf $dstWebDir/phpMyAdmin
cp $srcToolsDir/phpMyAdmin.tgz $dstWebDir/
cd $dstWebDir
tar zxvf phpMyAdmin.tgz > /dev/null
chown -R www-data:www-data $dstWebDir/phpMyAdmin
rm -rf $dstWebDir/phpMyAdmin.tgz
#mysql -u${USER} -e "${sql_phpmyadmin_user}"
myShowResult "OK"
 
 
# configure ems
#mkdir -p /tftpboot
#chmod 777 /tftpboot
echo -n "Configuring EMS ..."
cd $srcDir
 
#Update httpd.conf
httpdConfDir="/etc/apache2"
if [ $isCentOS -eq 1 ] ;then
cp -f $srcConfDir/httpd.conf_centos $httpdConfDir/httpd.conf
else
cp -f $dstConfDir/apache2-000-default.conf $httpdConfDir/sites-available/000-default.conf
sed -i 's/Require all denied/Require all granted/g' $httpdConfDir/apache2.conf
fi
chmod 644 $httpdConfDir/sites-available/*
 
if [ `cat /etc/rc.local |grep -c 'httpd'` -eq 0 ] ; then
echo "/etc/rc.d/init.d/httpd start">>/etc/rc.local
fi
chmod 755 /usr/local/omc
chmod 755 /usr/local/omc/bin
chmod 755 /usr/local/omc/bin/conf
chmod 644 /usr/local/omc/bin/conf/*
 
if [ -d $httpdConfDir/extra/ ] ;then
cp -f $dstConfDir/httpd-ssl.conf $httpdConfDir/extra/
else
mkdir $httpdConfDir/extra/
chmod 644 $httpdConfDir/extra/
cp -f $dstConfDir/httpd-ssl.conf $httpdConfDir/extra/
fi
cp -f $dstConfDir/cacert.pem $httpdConfDir/
cp -f $dstConfDir/*.crt $httpdConfDir/
cp -f $dstConfDir/*.key $httpdConfDir/
cp -f $dstConfDir/*.csr $httpdConfDir/
 
#update php.ini
#if [ `uname -r |grep -c '2.4.7-10'` -lt 1 ] ; then
# mv /etc/php.ini /etc/php.ini.bak
#cp -f $dstConfDir/php.ini /usr/local/lib
#cp -f $dstConfDir/php.ini /etc/php.ini
#fi
cp -f $dstConfDir/php.ini $phpIniDir/php.ini
 
#for old omc version,must replace the mysql config file and profile, rsyncd.conf
if [ `grep -c "/usr/local/omc_exec" /etc/profile` -gt 0 ] ; then
#cp -f $dstConfDir/mariadb-50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf
cp -f $dstConfDir/profile /etc/
fi
 
cp -f $dstConfDir/rsyncd.conf /etc/
chmod 644 /etc/rsyncd.conf
myShowResult "OK"
 
#step :Copy mssBak files
echo -n "Copy mssBak files ...."
mkdir -p $dstMssBakScriptDir
mkdir -p $dstMssBakDataDir
 
if [ ! -d "$srcMssBakDataDir" ] ; then
#echo "$srcMssBakDataDir already exist"
mkdir -p $srcMssBakDataDir
fi
myShowResult "OK"
 
cp -r $dstMssBakDataDir $omcBakDir/
rm -rf $dstMssBakDataDir/*
#cp -rf $srcMssBakDataDir/* $dstMssBakDataDir/
cp -rf $srcMssBakDataDir $dstMssBakDataDir
cp -rf $srcMssBakScriptDir/* $dstMssBakScriptDir/
chmod -R 755 $dstMssBakDataDir
chmod 700 $dstMssBakScriptDir/*
 
#step 5:Create log dir
echo -n "Create log directory ...."
mkdir -p /usr/local/omc/log/
myShowResult "OK"
 
#step 6:Copy source files
#if ( test -d $srcSrcDir ) then
# echo "Copy sources files ...."
# rm -rf $dstSrcDir
# rm -rf $dstRelsDir
# cp -rf $srcSrcDir $dstSrcDir
# cp -rf $srcRelsDir $dstRelsDir
#fi
 
#Step 7:set auto run service
echo "Set auto run ...."
serviceList="omcd chkDb"
serviceList="omcd"
for serviceName in $serviceList; do
#if [ `chkconfig --list |grep -c $serviceName` -gt 0 ] ; then
echo "update $serviceName ...."
#chkconfig --del $serviceName
update-rc.d -f $serviceName remove
#fi
done
 
rm -f $initDir/omcd
ln -fs $dstBinDir/$omcdName $initDir/omcd
#chkconfig --add omcd
#update-rc.d omcd defaults
cp $dstConfDir/omcd.service /usr/lib/systemd/system/
systemctl enable omcd.service
runLevels="2 3 4 5"
for level in $runLevels; do
mv -f /etc/rc${level}.d/S01omcd /etc/rc${level}.d/S99omcd
done
 
#rm -f $initDir/chkDb
#ln -fs $dstBinDir/chkDb $initDir/chkDb
#chkconfig --add chkDb
 
#Step 8:set omc's run mode
#$initDir/mysql start
service mysql start
if [ "$isAutoInstall" == "0" ] ; then
$dstBinDir/setRunMode space install
else
$dstBinDir/setRunMode -auto install
fi
 
#step 9:Record into install.log
installDate=` date +%Y-%m-%d' '%H:%M:%S`
cat ./emsVersion >>$omcDir/install.log
echo "$installDate $omcName $thisVersion" >> $omcDir/install.log
echo "-------------------------------------- " >> $omcDir/install.log
 
#step 10:Initial the OMC_PUB.omcPubVarConf table
if [ "$installMode" == "1" ] ; then
echo "Init the EMS omcPubVarConf"
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='AGrandTech' WHERE pubVarName='fieldName';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='cents' WHERE pubVarName='pssCardMinCount';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='100' WHERE pubVarName='currency_decimal';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='123456' WHERE pubVarName='AucManagePwd';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='123456' WHERE pubVarName='EirManagePwd';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='' WHERE pubVarName='cdr_store_server';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='' WHERE pubVarName='csta_store_server';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='60' WHERE pubVarName='SMCLI_timeout';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='5' WHERE pubVarName='automatic_scratch_card_time';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='1' WHERE pubVarName='automatic_scratch_card_flag';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='' WHERE pubVarName='alarmSmsNumberList ';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='' WHERE pubVarName='getparam_from';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='' WHERE pubVarName='getBssStatusAndAlarmTimer';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='No' WHERE pubVarName='SMLOG_CONTENT_DECODE_FLAG';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='No' WHERE pubVarName='SMLOG_CONTENT_SHOW_FLAG';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='64' WHERE pubVarName='maxCOSNumber';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='300' WHERE pubVarName='maxMoPrefixNumPerCOS';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='subsManager' WHERE pubVarName='globalFTPUserName';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='iammanager' WHERE pubVarName='globalFTPPassword';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='15' WHERE pubVarName='HTTPSessionTimeout';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='60' WHERE pubVarName='GenerateCDRFileInterval';
UPDATE OMC_PUB.omcPubVarConf SET pubVarValue='0' WHERE pubVarName='ExternalRCM';
DELETE FROM BssOmcDb.OMCR_BSSTABLE;
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(0,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(1,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(2,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(3,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(4,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(5,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(6,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(7,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(8,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(9,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(10,'','','',0,0,0);
INSERT INTO BssOmcDb.OMCR_BSSTABLE(bssid,ip,name,remark,connected,alarmed,uploaded)VALUES(11,'','','',0,0,0);
_EOF_
fi
 
#Get the original conf file back
if [ "$installMode" == "2" ] ; then
for conf_file in $bk_conf_file_list; do
if [ -f /tmp/$conf_file ] ;then
mv -f /tmp/$conf_file $orignalConfDir/
fi
done
 
if [ -f /usr/local/cdr_io_proc ] ;then
rm -rf /usr/local/omc/bin/dual/cdr_io_proc
mv /usr/local/cdr_io_proc /usr/local/omc/bin/dual/
fi
if [ -f /usr/local/cdr_data_proc ] ;then
rm -rf /usr/local/omc/bin/dual/cdr_data_proc
mv /usr/local/cdr_data_proc /usr/local/omc/bin/dual/
fi
if [ $isCentOS -eq 1 ]; then
chown -R www:omc /usr/local/omc/bin/dual/cdr_data_proc
else
chown -R www-data:www-data /usr/local/omc/bin/dual/cdr_data_proc
fi
chmod 777 /usr/local/omc/bin/dual/cdr_data_proc
fi
 
chmod -R 755 /usr/local/omc/bin/dual
 
externalRCMStr=`/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
SELECT pubVarValue FROM OMC_PUB.omcPubVarConf WHERE pubVarName='ExternalRCM';
_EOF_`
 
externalRCM=`echo $externalRCMStr | awk '{print $2}'`
if [ "$externalRCM" == "0" ] ;then
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
update OMC_PUB.sysMenuConf set privilege='-1' where level_1=3 and level_2=21 and level_3=0;
update OMC_PUB.sysMenuConf set privilege='2' where level_1=3 and level_2=20 and level_3=0;
update OMC_PUB.sysMenuConf set privilege='-1' where level_1=5 and level_2=3 and level_3=0;
update OMC_PUB.sysMenuConf set privilege='3' where level_1=5 and level_2=2 and level_3=0;
update OMC_PUB.sysMenuConf set privilege='-1' where level_1=7 and level_2=4 and level_3=2;
update OMC_PUB.sysMenuConf set privilege='4' where level_1=7 and level_2=4 and level_3=1;
_EOF_
else
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
update OMC_PUB.sysMenuConf set privilege='2' where level_1=3 and level_2=21 and level_3=0;
update OMC_PUB.sysMenuConf set privilege='-1' where level_1=3 and level_2=20 and level_3=0;
update OMC_PUB.sysMenuConf set privilege='3' where level_1=5 and level_2=3 and level_3=0;
update OMC_PUB.sysMenuConf set privilege='-1' where level_1=5 and level_2=2 and level_3=0;
update OMC_PUB.sysMenuConf set privilege='4' where level_1=7 and level_2=4 and level_3=2;
update OMC_PUB.sysMenuConf set privilege='-1' where level_1=7 and level_2=4 and level_3=1;
_EOF_
fi
 
 
 
 
if [ -n "`pidof mysqld`" ] ;then
kill -9 `pidof mysqld`
fi
 
rm -rf /usr/local/mysql/master.info
 
#$initDir/mysql start
service mysql start
 
if [ -n "`pidof httpd`" ] ;then
kill -9 `pidof httpd`
fi
#$initDir/httpd start
service apache2 start
 
$srcBinDir/changehostname
 
 
#install Intel raid service
raid_package=`dpkg -l sas_snmp`
if [ `echo $raid_package |grep -c 'not'` -eq 1 ] ; then
echo "Do you want to install the service of RAID(y/n)"
read sureInstallRaid
if [ "$sureInstallRaid" == "y" ] || [ "$sureInstallRaid" == "Y" ] ; then
cd $dstToolsDir
tar zxvf sas_snmp_install.tgz
cd sas_snmp_install/
./sas_snmp_install
cd $dstToolsDir
rm -rf sas_snmp_install
 
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
UPDATE OMC_PUB.elementExistConf SET existFlag='1' WHERE elementTypeNo='234';
_EOF_
 
else
 
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
UPDATE OMC_PUB.elementExistConf SET existFlag='0' WHERE elementTypeNo='234';
_EOF_
 
fi
else
 
echo -n "Do you want to open the service of RAID(y/n)"
read sureInstallRaid
if [ "$sureInstallRaid" == "y" ] || [ "$sureInstallRaid" == "Y" ] ; then
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
UPDATE OMC_PUB.elementExistConf SET existFlag='1' WHERE elementTypeNo='234';
_EOF_
else
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
UPDATE OMC_PUB.elementExistConf SET existFlag='0' WHERE elementTypeNo='234';
_EOF_
fi
 
fi
 
 
# Be sure to restart the mysql
#rm -rf /var/lock/subsys/msyql
#rm -rf /var/lib/mysql
if [ -n "`pidof mysqld`" ] ;then
kill -9 `pidof mysqld`
fi
chown -R mysql /usr/local/mysql
chgrp -R mysql /usr/local/mysql
#/etc/init.d/mysql start
service mysql start
chown -R mysql /var/lib/mysql
chgrp -R mysql /var/lib/mysql
 
#mkdir -p /var/run/mysqld
#ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
 
###############################################################################
# 4. EMS Install Finished
###############################################################################
myShowTitle "EMS Installation Process is complete"
 
#if [ `echo $PATH | grep -c '/etc/rc.d/init.d'` -eq 1 ] ;then
#
#
#echo "Do you want to reboot(y/n)"
#read sureReboot
#if [ "$sureReboot" != "y" ] && [ "$sureReboot" != "Y" ] ; then
#if [ "$installMode" == "2" ] ; then
#service omcd start
#fi
#exit
#else
#myShowTitle "Rebooting Server....."
#init 6
#fi
#else
#myShowTitle "Rebooting Server....."
#init 6
#fi
 
 
exit