웹마스터 팁

대단한 건 아니구요..
데이터가 많이 늘어날 경우 서버공간의 문제도 있고 해서..
일정기간동안만 데이터를 보관하는 방식으로 프로그램을 해 봤습니다.
테스트를 거쳐서 현재 사용하고 있는 겁니다.
더 좋은 방법 있으시면 알려주세요..

##############################################################################################


1. 아래와 같이 파일을 만들어 php파일로 저장한다.


#!/usr/local/php/bin/php

<?
$dbhost="호스트이름";
$dbuser="디비아이디";
$dbpass="디비패스";
$dbname="디비이름";

//DB connect
$connect=mysql_connect($dbhost,$dbuser,$dbpass) or die("<script>alert(' DB CONNECT ERROR ');</script>");
mysql_select_db($dbname,$connect);

//실행을 위한 테이블명 정의..
$Clear_board=array(
"essay" => true,
//"art"   => true,
//"theme" => true,
//"plant" => true,
//"jujea" => true,
//"member" => true,
);

$admin_query=mysql_query("select * from zetyx_admin_table order by no desc",$connect);
$dbtotal=mysql_num_rows($admin_query);

$nowy=date("Y",time());
$nowm=date("m",time());
$nowd=date("d",time());

//2달이 지난 게시물은 삭제한다.
$bbbfmonthdate=mktime(0,0,0,$nowm -1,1,$nowy);

for($i=1;$i<=$dbtotal;$i++){
  $adminRow=mysql_fetch_array($admin_query);
  
  if($Clear_board[$adminRow[name]] == true){

          $boardtable="zetyx_board_".$adminRow[name];
          $commenttable="zetyx_board_comment_".$adminRow[name];
          $boardname=$adminRow[name];


          $bQuery=mysql_query("select * from $boardtable  where reg_date < $bbbfmonthdate and depth=0 order by no desc",$connect);
          
          if(mysql_num_rows($bQuery)>0){
                 $bTotal=mysql_num_rows($bQuery);
                 for($k=1;$k<=$bTotal;$k++){
                   $bRow=mysql_fetch_array($bQuery);

                   ### 답글 지우기..
           $reQuery=mysql_query("select * from $boardtable where father=$bRow[no]",$connect);
                   if(mysql_num_rows($reQuery)>0){
                         $retotal=mysql_num_rows($reQuery);
                     for($j=1;$j<=$retotal;$j++){
                           $reRow=mysql_fetch_array($reQuery);
                           // 파일지우기..
                           if($reRow[file_name1] and file_exists("/home/ID/public_html/zboard/$reRow[file_name1]")){
                                 unlink("/home/ID/public_html/zboard/$reRow[file_name1]");
                           }
                           if($reRow[file_name2] and file_exists("/home/ID/public_html/zboard/$reRow[file_name2]")){
                                 unlink("/home/ID/public_html/zboard/$reRow[file_name2]");
                           }
                           if($reRow[s_file_name1] and file_exists("/home/ID/public_html/zboard/$reRow[s_file_name1]")){
                                 unlink("/home/ID/public_html/zboard/$reRow[s_file_name1]");
                           }
                           if($reRow[s_file_name2] and file_exists("/home/ID/public_html/zboard/$reRow[s_file_name2]")){
                                 unlink("/home/ID/public_html/zboard/$reRow[s_file_name2]");
                           }
                         } //for
                   } //if

                   ### 원문 파일 지우기..
                   if($bRow[file_name1] and file_exists("/home/ID/public_html/zboard/$bRow[file_name1]")){
                         unlink("/home/ID/public_html/zboard/$bRow[file_name1]");
                   }
                   if($bRow[file_name2] and file_exists("/home/ID/public_html/zboard/$bRow[file_name2]")){
                         unlink("/home/ID/public_html/zboard/$bRow[file_name2]");
                   }
                   if($bRow[s_file_name1] and file_exists("/home/ID/public_html/zboard/$bRow[s_file_name1]")){
                         unlink("/home/ID/public_html/zboard/$bRow[s_file_name1]");
                   }
                   if($bRow[s_file_name2] and file_exists("/home/ID/public_html/zboard/$bRow[s_file_name2]")){
                         unlink("/home/ID/public_html/zboard/$bRow[s_file_name2]");
                   }
                  
                   // 디비지우기
                   mysql_query("Delete from $boardtable where no=$bRow[no]",$connect);
                   mysql_query("Delete from $boardtable where father=$bRow[no]",$connect);
                   mysql_query("Delete from $commenttable where parent=$bRow[no]",$connect);
                 } //for
          } //if
          
          $nquery=mysql_query("select * from $boardtable",$connect);
          $nTotal=mysql_num_rows($nquery);
          
           mysql_query("update zetyx_admin_table set total_article=$nTotal where name='$adminRow[name]'",$connect);


  } //if
} //for

mysql_close($connect);
?>


2. 위 파일의 저장이 끝났으면 자동으로 실행될 수 있도록

#!/bin/bash
/위/파일/경로/파일명

같이 하여 /etc/cron.monthly/ 에 확장자없는 파일명(예 : ZboardClear )으로 저장하고

#chmod 700 /etc/cron.monthly/ZboardClear  명령으로 루트만이 실행할 수 있는 권한을 준다.

또는 crontab에 추가해도 된다.


##################################################################################################

::::::::::::::::::::::::::         메리크리스마스      ::::::::::::::::::::::::::::::::
제목 글쓴이 날짜
[iframe:아이프레임] 내용에 맞게 사이즈 조절하기 한번입력으로 끝.[다른방법:중복아닌듯] [45] beMax 2004.04.23
(For 초보)원클릭으로 여러프레임 컨트롤하기 [2] 쉬드 2004.04.19
자기가 살아온 시간 구하기.. 데스크탑에 나타내기 [4] kein23 2004.04.14
브라우저 버젼별 다른 페이지 보여주기 [2] Kuldahar 2004.04.13
바보같은 MS의 parseInt 버그. [4] 김관석 2004.04.09
XP계열의 방문자 컴에서 ClearType 효과 사용여부 확인 [4] YeUPy 2004.04.04
팝업공지창 2개이상 띄우기(시간제한 가능) [8] lemin 2004.03.23
허접한 풀다운 메뉴 소스입니다. (유용한 팁 일지는 모르겠네요.) [9] file tintintm 2004.03.23
버튼 만들기 [1] 旻天 2004.03.23
MS agent online object - Default Character 인 Merlin Action 추가 [2] 꽃ちゃん 2004.03.19
움직이는 타이틀바 [4] 김동현 2004.03.18
웹브라우저 상태바가 밑으로 내려오는 소스 [5] 프리서버 2004.03.16
브라우져(윈도우) 창의 크기(사이즈)를 조절하는 소스입니다 [5] 나야 2004.03.15
프레임사이트에서 자식 프레임(URL)로 직접 치고 들어 올경우 다시 프레임 부모로 돌려보내는 소스 나야 2004.03.15
전체 include menu 만들기(롤오버 이미지 사용) [4] Neoyoung 2004.03.14
[초간단 자바스크립트!] 서브메뉴 만들기...~ [11] ∑Ztxy 2004.03.10
뉴스티커 [16] file zero 2004.03.10
보안문서 만들기 [5] 민우주 2004.03.07
팝업 창 띄우고 어미창 사라지게 하는 소스 [5] piasol 2004.03.06
방문자 OS보여주기 [5] 구조반 2004.03.05