그누보드5 디비 g5_uniqid 2일전 데이터 자동삭제 > 기술자료

본문 바로가기

사이트 내 전체검색

그누보드5 디비 g5_uniqid 2일전 데이터 자동삭제 > 기술자료

그누보드 그누보드5 디비 g5_uniqid 2일전 데이터 자동삭제

페이지 정보


본문

g5_uniqid 가 엄청 쌓여서 extend 폴더에 업로드 해서, 자동으로 삭제되도록 만들었습니다.
extend 폴더에 uniqid_cleanup.extend.php 을 생성해서 아래 내용을 저장 업로드 합니다
g5_uniqid 에는 영카트 쇼핑몰에서 장바구니, 주문하기 등에서 사용된다고 합니다.
 
<?php
// extend/uniqid_cleanup.extend.php
// ────────────────────────────────────────
// g5_uniqid 자동정리 + 테이블 최적화 + 로그 크기 제한
// - 상품이 없을 때: 2일 이전 삭제
// - 상품이 있을 때: 30일 이전 삭제
// ver.2025.11.06-final-const (PHP 5.4~8.x 호환)
// ────────────────────────────────────────
if (!defined('_GNUBOARD_')) exit;
// ─────────────────────────────
// 설정 상수 (필요 시만 수정)
// ─────────────────────────────
define('UNIQID_CLEANUP_DAYS_NOITEM', 2);   // 상품이 없을 때 삭제 기준 (일)
define('UNIQID_CLEANUP_DAYS_HASITEM', 30); // 상품이 있을 때 삭제 기준 (일)
define('UNIQID_CLEANUP_LOG_MAXSIZE', 1048576); // 로그 최대 크기 1MB
// 디렉토리 보장
@mkdir(G5_DATA_PATH . '/cache', G5_DIR_PERMISSION, true);
@mkdir(G5_DATA_PATH . '/log', G5_DIR_PERMISSION, true);
// 하루 1회만 실행되도록 캐시파일 이용
$uniqid_cleanup_flag_file = G5_DATA_PATH . '/cache/uniqid_cleanup.flag';
$uniqid_cleanup_today = date('Y-m-d');
// 오늘 이미 실행했는지 확인
if (!file_exists($uniqid_cleanup_flag_file) || trim(@file_get_contents($uniqid_cleanup_flag_file)) !== $uniqid_cleanup_today) {
    // 실행 날짜 기록
    @file_put_contents($uniqid_cleanup_flag_file, $uniqid_cleanup_today);
    // 테이블명 결정
    $uniqid_cleanup_table = isset($g5['uniqid_table']) ? $g5['uniqid_table'] : G5_TABLE_PREFIX.'uniqid';
    // 쇼핑몰 상품 존재 여부 확인
    $uniqid_cleanup_shop_item_table = isset($g5['g5_shop_item_table']) ? $g5['g5_shop_item_table'] : G5_TABLE_PREFIX.'shop_item';
    $uniqid_cleanup_item_count = (int)sql_fetch_value("SELECT COUNT(*) FROM `{$uniqid_cleanup_shop_item_table}`");
    // 상품 개수에 따라 삭제 기준 일수 설정
    $uniqid_cleanup_days = ($uniqid_cleanup_item_count > 0) ? UNIQID_CLEANUP_DAYS_HASITEM : UNIQID_CLEANUP_DAYS_NOITEM;
    $uniqid_cleanup_expire_id = (int)date('Ymd00000000', strtotime("-{$uniqid_cleanup_days} days"));
    // ─────────────────────────────
    // 1. 기간 경과 데이터 삭제
    // ─────────────────────────────
    $uniqid_cleanup_del_sql = "DELETE FROM `{$uniqid_cleanup_table}` WHERE `uq_id` < {$uniqid_cleanup_expire_id}";
    sql_query($uniqid_cleanup_del_sql, false);
    // ─────────────────────────────
    // 2. 테이블 최적화 (공간회수)
    // ─────────────────────────────
    $uniqid_cleanup_opt_sql = "OPTIMIZE TABLE `{$uniqid_cleanup_table}`";
    sql_query($uniqid_cleanup_opt_sql, false);
    // ─────────────────────────────
    // 3. 로그 기록 (1MB 초과 시 초기화)
    // ─────────────────────────────
    $uniqid_cleanup_log_path = G5_DATA_PATH . '/log/uniqid_cleanup.log';
    if (file_exists($uniqid_cleanup_log_path) && filesize($uniqid_cleanup_log_path) > UNIQID_CLEANUP_LOG_MAXSIZE) {
        @unlink($uniqid_cleanup_log_path);
        @file_put_contents($uniqid_cleanup_log_path, "[".date('Y-m-d H:i:s')."] log reset (size > 1MB)\n");
    }
    // 로그 작성
    $uniqid_cleanup_msg = sprintf("[%s] cleanup done — deleted uq_id < %s (%d days old), optimized table: %s, shop items: %d\n",
        date('Y-m-d H:i:s'), $uniqid_cleanup_expire_id, $uniqid_cleanup_days, $uniqid_cleanup_table, $uniqid_cleanup_item_count);
    @file_put_contents($uniqid_cleanup_log_path, $uniqid_cleanup_msg, FILE_APPEND);
}

댓글목록

등록된 댓글이 없습니다.


Total 2,648건 1 페이지
  • RSS
기술자료 목록
2648
그누보드   17  2026-02-03 11:54 ~ 2026-02-03 11:58  
열람
그누보드   15  2026-02-03 11:51  
2646
그누보드   35  2026-02-02 19:40 ~ 2026-02-03 11:44  
2645
Search   598  2025-10-15 17:04 ~ 2025-10-23 00:29  
2644
MySQL   832  2025-08-28 17:54 ~ 2025-08-28 17:55  
2643
PHP   2220  2025-02-07 09:27 ~ 2025-02-07 16:59  
2642
그누보드   1875  2025-02-07 08:55 ~ 2025-02-07 17:04  
2641
그누보드   2108  2024-11-26 21:14 ~ 2024-11-26 21:22  
2640
그누보드   3702  2024-11-22 10:52 ~ 2024-11-22 11:03  
2639
호스팅   2472  2024-11-19 14:41 ~ 2024-11-19 21:17  
2638
Linux   1787  2024-11-18 15:45 ~ 2024-11-18 15:48  
2637
일반   1638  2024-11-15 16:45 ~ 2024-11-15 16:46  
2636
Secure   1805  2024-11-06 18:48 ~ 2024-11-06 18:50  
2635
영카트   2092  2024-10-21 13:44 ~ 2025-08-29 23:40  
2634
전자결제   3505  2024-09-05 09:30  
2633
MySQL   2652  2024-03-29 14:14 ~ 2024-03-29 14:14  
2632
그누보드   2925  2024-02-23 18:40 ~ 2024-02-24 06:13  
2631
JavaScript   2898  2024-02-16 18:50 ~ 2024-02-16 20:37  
2630
Java   3002  2024-02-06 16:49  
2629
PHP   3241  2024-02-06 16:42  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2026 해피정닷컴. All Rights Reserved.