Files
build.ems/extra/wxc2_emsInstall
2024-11-21 10:51:47 +08:00

1081 lines
34 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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