Files
interactive/gms/check_storage/check_storage.php
T
2026-08-07 17:38:18 +09:00

638 lines
20 KiB
PHP

<html>
<head>
<meta charset="euc-kr">
<title>Cloud Storage - Used Storage Check Report</title>
</head>
<body>
<h1>Cloud Storage</h1>
<h2>서비스별 Storage 사용량 Report (Ver 3.5.0.R1506)</h2>
<?php
// 라이브러리 정의
require_once("inc/sendmail.inc"); // 메일 전송 관련.
// 상수값 정의
define( CONF_FILE, "/user/service/etc/check_storage.conf");
// ******* TODO: IDC 별 설정, ****************
// 본 설정은 SMS 전송 관련 설정. KT, LG 등으로 설정 처리
//define( IDC_INFO, "KT" );
//define( IDC_INFO, "LG U+" );
//define( IDC_INFO, "SKBB" );
define( IDC_INFO, "SOLBOX" );
// IDC 별 설정 설정 정보
if( strcmp( IDC_INFO, "KT" ) == 0 )
{
$CCDB_CONNECT_STRING = "dbname=cs_ccdb user=solboxcs password=thsutleodlQj host=cc-gts.ktsh.co.kr port=9000"; // KT CCDB
$ALARM_MAIL_SENDER = "storage@solbox.com"; // KT 메일 발신자.
}
else if( strcmp( IDC_INFO, "LG U+" ) == 0 )
{
$CCDB_CONNECT_STRING = "dbname=cs_ccdb user=solboxcs password=thsutleodlQj host=cs-gts.x-cdn.com port=9000"; // LG U+ CCDB
$ALARM_MAIL_SENDER = "storage@solbox.com"; // LG U+ 메일 발신자 (개발팀 Storage 담당)
}
else if( strcmp( IDC_INFO, "SKBB" ) == 0 )
{
$CCDB_CONNECT_STRING = "dbname=cs_ccdb user=solboxcs password=thsutleodlQj host=222.239.93.4 port=6543"; // SKB CCDB
$ALARM_MAIL_SENDER = "storage@solbox.com"; // SKBB 메일 발신자 (개발팀 Storage 담당)
}
else if( strcmp( IDC_INFO, "SOLBOX" ) == 0 )
{
$CCDB_CONNECT_STRING = "dbname=cs_ccdb user=solboxcs password=thsutleodlQj host=192.168.10.128 port=6543"; // SKB CCDB
$ALARM_MAIL_SENDER = "storage@solbox.com"; // SKBB 메일 발신자 (개발팀 Storage 담당)
}
else
{
//TODO: IDC 별 설정 추가
die("<p><b>[ERROR] Undefined IDC info. Check IDC_INFO value.</b></p></body></html>");
}
// TODO: SMS 전송함수 ( IDC 별 기능 추가 )
// SMS 전송 처리 결과... 1: 전송 성공, 0: 전송 실패, -1: SMS 전송 설정 안됨..
function send_sms( $phone, $message )
{
if( strcmp( IDC_INFO, "KT" ) == 0 )
{
// KT 의 경우 SMS 전송을 위해 MySQL DB 사용하며...
// - INSERT 처리시 고유 규칙이 있어 이를 준수해야 함.
require_once("inc/mysql.inc");
// KT SMS 전송은 MySQL DB 에 KT 관련 규칙에 맞도록 저장 처리한다.
$sms_db = new dbconnect('222.122.18.22', 'smsuser', 'sms5emffld)', 'sms', __FILE__, __LINE__);
// KT 수신자관련 저장 규칙
$sms_target = "ktics1^".$phone;
$sms_query = "INSERT INTO SDK_SMS_SEND (USER_ID, SCHEDULE_TYPE, SUBJECT, NOW_DATE, SEND_DATE, CALLBACK, DEST_COUNT, DEST_INFO, SMS_MSG) ";
$sms_query .= "VALUES ('ktics1', 0,'ktics1',DATE_FORMAT(now(),'%Y%m%d%H%i%s'),DATE_FORMAT(now(),'%Y%m%d%H%i%s'),'0317810344', 1,'$sms_target','$message')";
$sms_result = $sms_db->query($sms_query, __FILE__, __LINE__);
// SMS DB 접속 해제
$sms_db->close();
if( !$sms_result->result ) // 전송 실패시....
return 0;
else
return 1;
}
else if( strcmp( IDC_INFO, "LG U+" ) == 0 ) //LG U+ 의 SMS 전송 기능
{
// LG U+ 의 경우.. SMS 전송을 위해 Oracle -> MySQL DB로 변경되어 이를 사용
// - INSERT 처리시 고유 규칙이 있어 이를 준수해야 함.
require_once("inc/mysql.inc");
$sms_db = new dbconnect('smsdb.x-cdn.com', 'xcdnuser', 'solbox123', 'SMS', __FILE__, __LINE__);
$sms_query = "INSERT INTO SC_TRAN( TR_SENDDATE, TR_SENDSTAT, TR_PHONE, TR_CALLBACK, TR_MSG, TR_MSGTYPE)";
$sms_query .= "VALUES ( now(), '0', '$phone', '$phone', '$message', '0')";
$sms_result = $sms_db->query($sms_query, __FILE__, __LINE__);
// SMS DB 접속 해제
$sms_db->close();
if( !$sms_result->result ) // 전송 실패시....
return 0;
else
return 1;
}
else if( strcmp( IDC_INFO, "SKBB" ) == 0 )
{
// SKBB 의 경우 SMS 전송을 위해 솔박에서 구매한 sms 전송 시스템 사용, MySQL DB 사용
require_once("inc/mysql.inc");
// SKBB SMS 전송은 MySQL DB 에 관련 규칙에 맞도록 저장 처리한다.
$sms_db = new dbconnect('222.239.93.143:13306', 'lghv_user', 'solbox@#12', 'lghv_db', __FILE__, __LINE__);
// 수신자관련 저장 규칙
$sms_target = $phone;
$sms_query = "INSERT INTO lghv_db.TBL_SEND_TRAN( fmsgtype, fmessage, fsenddate, fdestine, fcallback ) ";
$sms_query.= "VALUES ( '0', '$message', now(), '$sms_target', '0221823688' ); ";
$sms_result = $sms_db->query($sms_query, __FILE__, __LINE__);
// SMS DB 접속 해제
$sms_db->close();
if( !$sms_result->result ) // 전송 실패시....
return 0;
else
return 1;
}
else if( strcmp( IDC_INFO, "SOLBOX" ) == 0 )
{
// SOLBOX 인 경우.. SKBB 를 그대로 사용한다.
// SKBB 의 경우 SMS 전송을 위해 솔박에서 구매한 sms 전송 시스템 사용, MySQL DB 사용
require_once("inc/mysql.inc");
// SKBB SMS 전송은 MySQL DB 에 관련 규칙에 맞도록 저장 처리한다.
$sms_db = new dbconnect('222.239.93.143:13306', 'lghv_user', 'solbox@#12', 'lghv_db', __FILE__, __LINE__);
// 수신자관련 저장 규칙
$sms_target = $phone;
$sms_query = "INSERT INTO lghv_db.TBL_SEND_TRAN( fmsgtype, fmessage, fsenddate, fdestine, fcallback ) ";
$sms_query.= "VALUES ( '0', '$message', now(), '$sms_target', '0221823688' ); ";
$sms_result = $sms_db->query($sms_query, __FILE__, __LINE__);
// SMS DB 접속 해제
$sms_db->close();
if( !$sms_result->result ) // 전송 실패시....
return 0;
else
return 1;
}
else
{
// SMS 전송함수가 정의되어 있지 않은 경우.
return -1;
}
}
// 서비스 정보 출력시... Storage 사용률 정보를 기준으로 Sort 처리하기 위한 함수.
function service_compare($x, $y)
{
if( $x[6] == $y[6] )
{
// 스토리지 사용률이 동일한 경우....
// 스토리지 사용량값을 이용하여 정렬 처리.
if( $x[4] == $y[4] )
return 0;
else if( $x[4] < $y[4] )
return 1;
else
return -1;
}
else if( $x[6] < $y[6] )
return 1;
else
return -1;
}
// 기타 정의
date_default_timezone_set('Asia/Seoul'); // date 함수 사용 관련 timezone 설정 오류 회피 목적
//phpinfo();
// 시작 정보 기록..
$check_start_time = date("Y-m-d H:i:s");
// CCDB 상에서 감시대상 서비스 정보 추출
$ccdb_handle = pg_connect( $CCDB_CONNECT_STRING );
if( $ccdb_handle == false )
{
// CCDB 연결 실패시... PHP 종료 처리
die("<p><b>[$check_start_time] CCDB Connection failed.</b></p></body></html>");
}
$query_service = "SELECT A.svc_id AS service, D.id AS rc_name, D.stat_id AS rc_id , A.user_seq AS user_seq, A.svc_seq AS svc_seq, B.storage_used_alarm AS alarm_limit
FROM cs_service.cs_service A, cs_alarm.cs_service_alarm B, cs_service.cs_service_config C, cs_service.cs_rc_info D
WHERE
A.svc_seq = B.svc_seq
AND B.svc_seq = C.svc_seq
AND C.rc_domain = D.rc_domain
AND A.del_yn = 'N'
AND A.status_code = 'SVC_STATUS_ING'
AND B.storage_used_alarm > 0
ORDER BY A.svc_seq, D.stat_id ";
$ccdb_result_service = pg_exec( $ccdb_handle, $query_service );
if( $ccdb_result_service == false )
{
// CCDB Query 실패시... PHP 종료 처리
echo pg_errormessage( $ccdb_handle );
pg_close($ccdb_handle);
die("<p><b>[$check_start_time] CCDB Query failed.[$query_service]</b></p></body></html>");
}
// 조회 결과 저장.
$array_service = array();
for( $row_service = 0; $row_service < pg_numrows($ccdb_result_service); $row_service++ )
{
$values = pg_fetch_row( $ccdb_result_service, $row_service );
// $values[0] : 서비스 Name : totodisk05
// $values[1] : RC Name : BD-09
// $values[2] : rc stat_id : bd09
// $values[3] : user_seq : 156
// $values[4] : svc_seq : 238
// $values[5] : alarm_limit : 70
array_push( $array_service, $values );
}
pg_freeresult( $ccdb_result_service ); // CCDB result set free.
// 감시대상 서비스에 대한 Storage 사용량 조회.
$services = array(); // 최종 정보를 저장할 변수.
reset( $array_service );
$service_total_count = count( $array_service );
for( $service_index = 0; $service_index < $service_total_count; $service_index++ )
{
$query_used = "SELECT stg_size, used_stg_size, to_char(reg_date, 'YYYY-MM-DD HH24:MI:SS') FROM cs_stat.cs_stat_storage
WHERE reg_date > ( now() - interval '30 minute' )
AND user_seq = ".$array_service[$service_index][3]."
AND svc_seq = ".$array_service[$service_index][4]."
AND rc_id = '".$array_service[$service_index][2]."'
ORDER BY reg_date DESC LIMIT 1";
$ccdb_result_used = pg_exec( $ccdb_handle, $query_used );
// 결과 Row 수는 정상인 경우 1건... 조회 결과 없을 경우.. 0건 임.
if( pg_numrows($ccdb_result_used) == 1 )
{
// 정상 조회된 경우...
//$values = pg_fetch_row( $ccdb_result_used, $row_used );
$values = pg_fetch_row( $ccdb_result_used );
// $values[0] : 계약용량(Byte) : 329853488332800
// $values[1] : 사용량(Byte) : 193857136159126
// $values[2] : Last 통계 시각 : 2014-03-26 14:20:00
// 최종 출력 관련 $services 배열 저장 순서..
// 0. 서비스 Name
// 1. RC Name
// 2. 계약용량
// 3. alarm_limit
// 4. 사용량
// 5. Last 통계 시간
// 6. Storage 사용률 => 아래 함수에서 처리하므로.. 0.0 으로 저장 처리.
$temp = array( $array_service[$service_index][0], $array_service[$service_index][1], $values[0]
, $array_service[$service_index][5], $values[1], $values[2], 0.0 );
array_push( $services, $temp );
}
else
{
// 해당 서비스에 대한 통계 정보 조회 실패시..
// - 아래 Flow 에서 처리를 수행하기 위해.. 계약 용량값을 -1 값을 처리.
$temp = array( $array_service[$service_index][0], $array_service[$service_index][1], -1
, $array_service[$service_index][5], 0, 'Storage 통계 Not Found', 0.0 );
array_push( $services, $temp );
}
pg_freeresult( $ccdb_result_used ); // CCDB result set free.
}
// CCDB 연결 종료
pg_close($ccdb_handle);
// 사용율 계산
$service_total_count = count( $services ); // 전체 서비스 수.
$service_alarm_count = 0; // 임계치 초과 서비스 수.
$service_check_count = 0; // 서비스 정보 이상 관련 확인 필요한 서비스 수.
reset( $services );
for( $row_index = 0; $row_index < $service_total_count; $row_index++ )
{
// 백분률로 처리하며.. 소수점 이하 1자리까지.
// 정수에 대한 실수 계산 처리때문에 100.0 을 곱함.
// 계약용량이 0 보다 큰 경우...
if( $services[$row_index][2] > 0 )
{
$services[$row_index][6] = number_format( $services[$row_index][4] * 100.0 / $services[$row_index][2] , 1 );
}
else if( $services[$row_index][2] == 0 )
{
// 계약용량이 0인 경우.. => 사용률 100% 로 처리..
$services[$row_index][6] = 100.0;
}
else
{
// CCDB 상에서 통계 정보 조회 실패시...
$services[$row_index][6] = -1;
$service_check_count +=1;
}
// 임계치 초과 서비스 수 계산.
// Storage 사용률이 관제 설정값보다 같거나 큰 경우...
if( ($services[$row_index][2] >= 0) && ($services[$row_index][6] >= $services[$row_index][3]))
{
$service_alarm_count += 1;
}
}
// 요약 정보 관련 HTML 생성 처리...
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"b2b2b2\" >\n";
echo " <tr>\n";
echo " <td bgcolor=\"#EFEFEF\" align=\"left\">검사 시각 (30분 단위)</td>\n";
echo " <td bgcolor=\"#FFFFFF\" align=\"center\">$check_start_time</td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td bgcolor=\"#EFEFEF\" align=\"left\">검사 대상 서비스 수</td>\n";
echo " <td bgcolor=\"#FFFFFF\" align=\"center\">$service_total_count</td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td bgcolor=\"#EFEFEF\" align=\"left\">임계치 초과 서비스 수</td>\n";
if( $service_alarm_count > 0 )
{
echo " <td bgcolor=\"#FF0000\" align=\"center\">$service_alarm_count</td>\n";
echo " </tr>\n";
}
else
{
echo " <td bgcolor=\"#FFFFFF\" align=\"center\">$service_alarm_count</td>\n";
echo " </tr>\n";
}
echo " <tr>\n";
echo " <td bgcolor=\"#EFEFEF\" align=\"left\">설정 점검 필요 서비스 수</td>\n";
if( $service_check_count > 0 )
{
echo " <td bgcolor=\"#FFAA00\" align=\"center\">$service_check_count</td>\n";
echo " </tr>\n";
}
else
{
echo " <td bgcolor=\"#FFFFFF\" align=\"center\">$service_check_count</td>\n";
echo " </tr>\n";
}
echo "</table>\n";
echo "<br />\n";
// HTML 출력전.. Storage 사용률 기반으로 정렬 처리.
reset( $services );
usort( $services, 'service_compare');
// 추출 결과에 대한 HTML 생성 처리...
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"b2b2b2\" >
<tr>
<td bgcolor=\"#EFEFEF\" align=\"center\">No</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">서비스</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">RC Name</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">Storage 계약용량(GB)</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">관제 설정값(%)</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">Storage 사용량(GB)</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">Last Storage 통계 등록시각</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">Storage 사용률(%)</td>
</tr>\n";
reset( $services );
for( $row_index = 0; $row_index < $service_total_count; $row_index++ )
{
echo " <tr>\n";
// No 표시
echo " <td align=\"right\" bgcolor=\"#FFFFFF\">".($row_index+1)."</td>\n";
// 서비스명
// Storage 사용률이 관제 설정값보다 같거나 큰 경우...
if( $services[$row_index][2] >= 0 && $services[$row_index][6] >= $services[$row_index][3] )
{
echo " <td align=\"left\" bgcolor=\"#FF0000\">".$services[$row_index][0]."</td>\n";
}
else if( $services[$row_index][2] == -1 )
{
// 통계 정보 조회 실패시..
echo " <td align=\"left\" bgcolor=\"#FFAA00\">".$services[$row_index][0]."</td>\n";
}
else
{
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">".$services[$row_index][0]."</td>\n";
}
// RC Name
echo " <td align=\"center\" bgcolor=\"#FFFFFF\">".$services[$row_index][1]."</td>\n";
// Storage 계약 용량
// GB 로 변환하여 표시, 1024 단위이므로 소수점 이하 처리는 안해도 된다.
if( $services[$row_index][2] >= 0 )
{
echo " <td align=\"right\" bgcolor=\"#FFFFFF\">".number_format($services[$row_index][2]/1024.0/1024/1024, 0)."</td>\n";
}
else
{
echo " <td align=\"right\" bgcolor=\"#FFAA00\">".$services[$row_index][2]."</td>\n";
}
// 관제 설정값.
// Storage 사용률이 관제 설정값보다 같거나 큰 경우...
if( $services[$row_index][2] >= 0 && $services[$row_index][6] >= $services[$row_index][3] )
{
echo " <td align=\"right\" bgcolor=\"#FF0000\">".$services[$row_index][3]."</td>\n";
}
else
{
echo " <td align=\"right\" bgcolor=\"#FFFFFF\">".$services[$row_index][3]."</td>\n";
}
// Storage 실제 사용량
// GB 단위로 변환하여 표시, 소수점이하 1자리까지.
echo " <td align=\"right\" bgcolor=\"#FFFFFF\">".number_format($services[$row_index][4]/1024.0/1024/1024, 1)."</td>\n";
// Storage 사용량 통계정보의 최종 시각
// CCDB 에 저장된 해당 서비스의 최종 Storage 통계 등록 시각.
if( $services[$row_index][2] >= 0 )
{
echo " <td align=\"center\" bgcolor=\"#FFFFFF\">".$services[$row_index][5]."</td>\n";
}
else
{
echo " <td align=\"center\" bgcolor=\"#FFAA00\">".$services[$row_index][5]."</td>\n";
}
// Storage 사용률
// Storage 사용률이 관제 설정값보다 같거나 큰 경우...
if( $services[$row_index][2] >= 0 && $services[$row_index][6] >= $services[$row_index][3] )
{
echo " <td align=\"right\" bgcolor=\"#FF0000\">".$services[$row_index][6]."</td>\n";
}
else
{
echo " <td align=\"right\" bgcolor=\"#FFFFFF\">".$services[$row_index][6]."</td>\n";
}
echo " </tr>\n";
}
echo "</table>\n";
// alarm 발송 서비스가 존재하는 경우.. conf 파일에 설정된 Alarm 대상 정보를 가져와 저장한다.
if( $service_alarm_count > 0 )
{
$fp = fopen( CONF_FILE, "r");
$alarm_list_sms = array();
$alarm_list_mail= array();
while( !feof($fp))
{
$buf = fgets($fp);
if(strncmp($buf, '#', 1) == 0) // Comment '#'
continue;
else if(strncmp( $buf, ' ', 1) == 0) // Blank line
continue;
else if(strncmp($buf, '[', 1) == 0) // COMMON + SERVICE 블록
{
sscanf(trim($buf), '[%[^]]]', $svc_name );
}
else if(strncmp($buf, 'SMS=', 4) == 0 )
{
sscanf( trim($buf), 'SMS=%[^|]|%[^|]', $alarm_phone['name'], $alarm_phone['sms'] );
$alarm_phone['service'] = $svc_name;
array_push( $alarm_list_sms, $alarm_phone );
}
else if(strncmp($buf, 'MAIL=', 5) == 0 )
{
sscanf( trim($buf), 'MAIL=%[^|]|%[^|]', $alarm_mail['name'], $alarm_mail['mail'] );
$alarm_mail['service'] = $svc_name;
array_push( $alarm_list_mail, $alarm_mail );
}
}
fclose( $fp );
$alarm_list_sms_count = count($alarm_list_sms);
$alarm_list_mail_count = count($alarm_list_mail);
echo "<h3><font color=\"red\">Alarm 전송 내역</font></h3>";
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"b2b2b2\" >
<tr>
<td bgcolor=\"#EFEFEF\" align=\"center\">서비스</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">Alarm Type</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">수신자</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">연락처</td>
<td bgcolor=\"#EFEFEF\" align=\"center\">전송 결과</td>
</tr>\n";
reset( $services );
for( $row_index = 0; $row_index < $service_total_count; $row_index++ )
{
// 임계치 초과 서비스.... 확인..
if( ($services[$row_index][2] >= 0) && ($services[$row_index][6] >= $services[$row_index][3]))
{
// 해당 서비스에 대해 Mail 를 전송 처리한다.
reset($alarm_list_mail);
for( $row = 0; $row < $alarm_list_mail_count ; $row++ )
{
// SMS 전송 관련하여... alarm_list_mail 배열에 포함된 정보 중....
// 서비스명이 DEFAULT 이거나.. 서비스명이 동일한 경우.. SMS 를 전송한다.
if( ( strcmp( trim($alarm_list_mail[$row]['service']), "DEFAULT" ) == 0 )
|| ( strcmp( trim($alarm_list_mail[$row]['service']), $services[$row_index][0] ) == 0 ) )
{
// 제목
// - 한글 입력시.. 메일 수신 App 종류에 따라 깨지는 경우가 발생하여... 영문으로 전송 처리.
$mail_title = "[Cloud Storage] ".$services[$row_index][0]." Service Storage Used Alarm";
// Mail Body
$mail_body = "<p><b>Cloud Storage 사용량 Alarm</b></p>\n";
$mail_body .= "[".$services[$row_index][5]."] ";
$mail_body .= "[".$services[$row_index][1]."] ".$services[$row_index][0]." 서비스 Storage 사용량이 ";
$mail_body .= $services[$row_index][6]."% 로서 관제 임계치 ".$services[$row_index][3]."% 를 초과했습니다.\n";
$mail_body .= "<br /><br />\n* 본 메일은 발신 전용 메일입니다. *\n";
// inc 폴더 하위 sendmail.inc 에 정의된 Smtp Class 이용할 경우... 메시지 전송 실패가 종종 발생.
// 따라서 inc 폴더 하위 sendmail 클래스를 사용한다.
$mail_result = 0;
$mail = new sendmail("127.0.0.1", 25, 30 );
if( $mail->open() == true )
{
$mail->send( $alarm_list_mail[$row]['mail'], $ALARM_MAIL_SENDER, $mail_title, $mail_body );
$mail->close();
$mail_result = 1;
}
// 전송 결과 출력 HTML 조립
echo " <tr>\n";
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">".$services[$row_index][0]."</td>\n";
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">"."MAIL"."</td>\n";
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">".$alarm_list_mail[$row]['name']."</td>\n";
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">".$alarm_list_mail[$row]['mail']."</td>\n";
if( $mail_result == 1 )
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">"."전송 완료"."</td>\n";
else
echo " <td align=\"left\" bgcolor=\"#FF0000\">"."전송 실패"."</td>\n";
echo " </tr>\n";
}
}
// 해당 서비스에 대해 SMS 를 전송 처리한다.
reset($alarm_list_sms);
for( $row = 0; $row < $alarm_list_sms_count ; $row++ )
{
// SMS 전송 관련하여... alarm_list_sms 배열에 포함된 정보 중....
// 서비스명이 DEFAULT 이거나.. 서비스명이 동일한 경우.. SMS 를 전송한다.
if( ( strcmp( trim($alarm_list_sms[$row]['service']), "DEFAULT" ) == 0 )
|| ( strcmp( trim($alarm_list_sms[$row]['service']), $services[$row_index][0] ) == 0 ) )
{
// 2016-08-04 huibong
// sms 전송시 한글 입력 문제가 있어.. 영문으로 변경 처리함.
//$sms_body = "[CS Alarm] ".$services[$row_index][1]." ".$services[$row_index][0]." 서비스 Storage 사용량: ";
$sms_body = "[CS Alarm] ".$services[$row_index][1]." ".$services[$row_index][0]." service storage used alarm: ";
$sms_body .= $services[$row_index][6]."%";
// SMS 전송함수 호출
// SMS 전송 처리 결과... 1: 전송 성공, 0: 전송 실패, -1: SMS 전송 설정 안됨..
$sms_result = send_sms( $alarm_list_sms[$row]['sms'], $sms_body );
// SMS 전송 결과 출력 HTML 조립
echo " <tr>\n";
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">".$services[$row_index][0]."</td>\n";
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">"."SMS"."</td>\n";
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">".$alarm_list_sms[$row]['name']."</td>\n";
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">".$alarm_list_sms[$row]['sms']."</td>\n";
if( $sms_result == 1 )
{
echo " <td align=\"left\" bgcolor=\"#FFFFFF\">"."전송 완료"."</td>\n";
}
else if( $sms_result == 0 )
{
echo " <td align=\"left\" bgcolor=\"#FF0000\">"."전송 실패"."</td>\n";
}
else
{
echo " <td align=\"left\" bgcolor=\"#FF0000\">"."SMS 전송 기능 설정 안됨"."</td>\n";
}
echo " </tr>\n";
}
}
}
}
echo "</table>\n";
echo "<br />\n";
}
// PHP 종료.
?>
</body>
</html>