realSysId=$realSysId"; $sysIdArr=explode('_',$realSysId); $sysTypeNo=$sysIdArr[0]; $sysNo=$sysIdArr[1]; // echo "sysTypeNo=$sysTypeNo,sysNo=$sysNo"; } if($DEBUG)echo "
sysTypeNo= $sysTypeNo"; // echo "
";
// echo print_r($ftpInfo);
// echo "
"; $nGetComm = 0; $nSetComm = 3; $nSubSysParam = 0; $nGlobalSubSysParam = 1; $nGlobalSysParam = 2; $omc_db = 'OMC_PUB'; $sysInfoTable = 'OMC_PUB.sysInfo'; $impObjId = '99.2.1.2'; $impFileName = 'system.ini'; $ftpDir = '/usr/local/subsManage/'; $ftpLoginName = 'subsManager'; $baseLogFileName = 'fib.txt'; $ftpLoginPwd = 'iammanager'; $paramType = $nGlobalSysParam; $maxImpFileSize = 4*1024; if($DEBUG)echo "
impObjId= $impObjId"; if($DEBUG)echo "
impFileName=$impFileName "; if($DEBUG)echo "
ftpDir=$ftpDir "; if($DEBUG)echo "
ftpLoginName=$ftpLoginName "; if($DEBUG)echo "
ftpLoginPwd=$ftpLoginPwd"; if($DEBUG)echo "
paramType=$paramType "; if($DEBUG)echo "
maxImpFileSize=$maxImpFileSize "; function ssh_exec_command($connection, $command) { $stdio_stream = ssh2_exec($connection, $command); $stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR); stream_set_blocking($stdio_stream, true); stream_set_blocking($stderr_stream, true); $output = stream_get_contents($stdio_stream); $error = stream_get_contents($stderr_stream); fclose($stdio_stream); fclose($stderr_stream); return $output . $error; // 合并输出和错误 } //判断是否有文件上载 if(isset($impFile) && $impFile != "none"){ // $getSysIdSql = "SELECT sysNo,subSysNo,ip // FROM $sysInfoTable // WHERE sysTypeNo='200' AND sysNo='9' AND baseStat > '0' // ORDER BY sysNo,subSysNo // "; $getSysIdSql = "SELECT sysNo,subSysNo,ip FROM $sysInfoTable WHERE sysTypeNo='$sysTypeNo' AND sysNo=$sysNo AND baseStat > '0' ORDER BY sysNo,subSysNo "; if($DEBUG) echo "
getSysIdSql=$getSysIdSql"; $getSysIdResult= mysqli_query($pubConn,$getSysIdSql); echo mysqli_error($pubConn); $runningServerNum = mysqli_num_rows($getSysIdResult); if($runningServerNum <= 0){ echo "
Error: No system run normally"; } if($DEBUG) echo "running server number = $runningServerNum
"; //检查导入的文件大小,记录条数 $impFileSize = @filesize($impFile); if($DEBUG) { echo "
impFile=$impFile"; echo "
impFileSize=$impFileSize"; } if($impFileSize > $maxImpFileSize){ echo "
Import File Size is $impFileSize bytes"; echo "
File size is too large!(Must be <= $maxImpFileSize)"; @unlink ($impFile); echo "

Back"; exit(); } if($impFileSize <=0){ echo "
No import File"; @unlink ($impFile); echo "

Back"; exit(); } $submitStat = 'DISABLED'; for ($k=0; $k<$runningServerNum; $k++) { $getSysIdRow=mysqli_fetch_array($getSysIdResult); $dstSeverIp = $getSysIdRow[ip]; $dstSeverIpArr[$k] = $getSysIdRow[ip]; if($DEBUG) echo "
dstSeverIp = $dstSeverIp"; /* close ftp $ftpCon=@ftp_connect($dstSeverIp); if($ftpCon < 0){ echo "
Connect $dstSeverIp Failed!"; @unlink ($impFile); echo "

Back"; exit(); } */ $connection=sftp_connect($dstSeverIp); if(!$connection) { echo "
Connect $dstSeverIp Failed!"; @unlink ($impFile); echo "

Back"; exit(); } /* close ftp if(!@ftp_login($ftpCon,$ftpLoginName,$ftpLoginPwd)){ echo "
Login $dstSeverIp Failed!"; @unlink ($impFile); echo "

Back"; exit(); } */ $key=sftp_login($connection,$ftpLoginName,$ftpLoginPwd); if(!$key) { echo "
Login $dstSeverIp Failed!"; @unlink ($impFile); echo "

Back"; exit(); } if($DEBUG) echo "
sysTypeNo= $sysTypeNo"; switch($sysTypeNo){ case '320': $black='msc'; break; case '330': $black='hlr'; break; case '350': $black='smsc'; break; case '360': $black='ocs'; break; default: echo "Uknown sysTypeNo:$sysTypeNo"; exit(1); } // 针对 HLR 的特殊处理 if ($sysTypeNo === '330') { $tempFilePath = $ftpDir.$impFileName; $finalFilePath = '/usr/local/etc/udm/license/' . $impFileName; // 1. 先用 subsManager 上传到 /usr/local/subsManage/ if(!sftp_put($key,$tempFilePath,$impFile,SFTP_ASCII)) { echo "
Put file to $dstSeverIp Failed"; exit(); @unlink ($impFile); echo "

Back"; exit(); } // 2. 用 agtuser ssh 连接并执行 sudo mv $agt_connection = ssh2_connect($dstSeverIp, 22); if (!$agt_connection) { echo "
Connect $dstSeverIp Failed!"; exit(); } if (!ssh2_auth_password($agt_connection, $ftpInfo['UserName'], $ftpInfo['Password'])) { echo "
Login $dstSeverIp Failed!"; exit(); } $moveCommand = "sudo mv $tempFilePath $finalFilePath"; $moveResult = ssh_exec_command($agt_connection, $moveCommand); if (strpos($moveResult, 'error') !== false || strpos($moveResult, 'Error') !== false || strpos($moveResult, 'cannot') !== false) { echo "
Failed to move file to $finalFilePath"; exit(); } @unlink($impFile); echo "
HLR License Upload Finished"; echo "

Back"; exit(); } $impFileName="system.ini.".$black; $remoteFileName=$ftpDir.$impFileName; if($DEBUG)echo "$ftpCon,$remoteFileName,$impFile"; /* close ftp if(!@ftp_put($ftpCon,$remoteFileName,$impFile,FTP_BINARY)){ echo "
Put file to $dstSeverIp Failed"; exit(); @unlink ($impFile); echo "

Back"; exit(); } ftp_quit($ftpCon); */ if(!sftp_put($key,$remoteFileName,$impFile,SFTP_ASCII)) { echo "
Put file to $dstSeverIp Failed"; exit(); @unlink ($impFile); echo "

Back"; exit(); } } @unlink ($impFile); //$sysId=$sysTypeNo.'_99_99'; if($DEBUG) echo "
(2) sysId=$sysId"; //send set command $chgResult = setSysParamValue($sysId,$impObjId,$instanceNo,'00'); $commIdArr = sysCommSend($sysId,$nSetComm,$impObjId); if($DEBUG){ echo "setSysParamValue($sysId,$impObjId,$instanceNo,$newValue)
"; echo "sysCommSend($sysId,$nSetComm,$impObjId)"; } CheckState($commIdArr); echo "
Finished"; for($k=0;$kdstSeverIp=$dstSeverIp"; $dstSeverIp=$dstSeverIpArr[$k]; /* close ftp $ftpCon=@ftp_connect($dstSeverIp); if($ftpCon < 0){ echo "
Connect $dstSeverIp Failed!"; echo "

Back"; exit(); } */ $connection=sftp_connect($dstSeverIp); if(!$connection){ echo "
Connect $dstSeverIp Failed!"; echo "

Back"; exit(); } /* close ftp if(!@ftp_login($ftpCon,$ftpLoginName,$ftpLoginPwd)){ echo "
Login $dstSeverIp Failed!"; echo "

Back"; exit(); } */ $key=sftp_login($connection,$ftpLoginName,$ftpLoginPwd); if(!$key) { echo "
Login $dstSeverIp Failed!"; echo "

Back"; exit(); } $remoteFileName =$ftpDir.$baseLogFileName; //echo "remoteFileName=$remoteFileName"; $timestamp = time(); $nameArray = explode(".",$baseLogFileName); $logFileName = $nameArray[0].$timestamp."_".$k.".log"; $localFileName ="/usr/local/apache/htdocs/ftpFile/$logFileName"; /* //delete *.log $handle=opendir('/usr/local/apache/htdocs/ftpFile/'); while($file=readdir($handle)){ $retval=""; $pt=strrpos($file,"."); if($pt) $retval=substr($file,$pt+1,strlen($file)-$pt); $delFileName = "/usr/local/apache/htdocs/ftpFile/".$file; if($retval=='log') unlink($delFileName); } */ /* close ftp if(!ftp_get($ftpCon,$localFileName,$remoteFileName,FTP_ASCII)){ echo "
Get log file from $dstSeverIp Failed"; echo "

Back"; exit(); } ftp_quit($ftpCon); */ //if(!sftp_get($key,$localFileName,$remoteFileName,SFTP_ASCII)) if(!sftp_get($connection,$localFileName,$remoteFileName,SFTP_ASCII)) { echo "
Get log file from $dstSeverIp Failed"; echo "

Back"; exit(); } $logFileUrl="../../../ftpFile/$logFileName"; echo "

Click here to open the log  ($dstSeverIp)."; } echo "

Back"; exit(); }elseif(isset($impFile)){ echo "
Upload file failed, File isn't exist or file is empty!"; } ?> "; echo ""; echo ""; echo "$strConfiguration > MSS License Control"; echo ""; echo ""; $helpId="2.61"; showHelp($helpId); echo ""; echo ""; echo ""; adjust_title_tail(); adjust_content_head(); echo "
"; ?>

" name="subsData" enctype="multipart/form-data"> "; echo ""; echo ""; ?>
"; echo "$title"; echo "
Note:Import File's size <= bytes
Select Object:
Select File:
submitStat=$submitStat"; if($submitStat == 'DISABLED'){ echo ""; }else{ echo ""; } echo ""; echo ""; ?>