Copy
<?php
include_once(G5_THEME_PATH.'/head.php');
include_once(G5_LIB_PATH.'/mailer.lib.php');
include_once(G5_LIB_PATH.'/icode.sms.lib.php');
$url = 'http://localhost/'; // 확인하려는 사이트의 URL
$recv_nb_1 = "01012341234";
// 로그 기록 함수
function writeLog($message) {
$logFile = 'server_status.log'; // 로그 파일 경로
// 현재 날짜와 시간을 포맷팅
$timestamp = date('Y-m-d H:i:s');
$logMessage = "[$timestamp] $message" . PHP_EOL;
// 로그 파일에 메시지 기록
file_put_contents($logFile, $logMessage, FILE_APPEND | LOCK_EX);
}
// 사이트 접속 함수
function checkServerStatus($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5); // 5초 타임아웃 설정
if (strpos($url, 'https://') === 0) {
// HTTPS일 경우 SSL 인증서 검증 생략
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
echo "서버가 정상 작동 중입니다." . $httpCode;
$message = " $url 서버가 정상 작동 중입니다. HTTP 상태 코드: $httpCode";
} else {
echo "서버에 문제가 있을 수 있습니다. HTTP 상태 코드: " . $httpCode;
$message = "서버에 문제가 있을 수 있습니다. HTTP 상태 코드: $httpCode";
//Gmailer($email_1, $httpCode."님이 ".$httpCode."관련 작업 요청", $httpCode, 1);
$send_hp_mb = "12341234"; //보내는 전화번호
$recv_hp_mb_1 = $recv_nb_1; //받는 전화번호 1
$sms_content = $url."사이트 ".$httpCode." 서버상태 \n"; //문자 내용
$SMS = new SMS; //SMS 연결
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$SMS->Add($recv_hp_mb_1, $send_hp_mb, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($sms_content)), "");
$SMS->Send();
}
// 로그 기록
writeLog($message);
}
// 사이트 접속 함수 호출
checkServerStatus($url);
?>
서버상태를 확인하고 정상이면 그냥 로그만 남기고 비정상이면 문자발송과 함께 로그남기도록 짜봤는데요
정상일땐 정상적으로 로그 남겨지는데
비정상으로 만들면 로그 자체도 안생기더라구요 sms발송 부분을 주석처리하면 로그 남겨지구요
sms발송부분이 문제라서 밖으로 탈출을 못해서 로그도 못찍는거 같은데 어떻게 해결할수있을까요?
|
답변 4개
채택된 답변
+20 포인트
답변을 작성하려면 로그인이 필요합니다.