#!/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 find $srcDataDir/$tmpDir -type f ! -name 'sysUser.MYD' ! -name 'sysUser.MYI' ! -name 'sysUser.frm' -exec cp -Rf {} $dstDataDir/$tmpDir/ \; 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