웹모아
웹모아[손님] 검색   로그인    


 
백업/기타
 


리눅스에서 PHP 콘솔을 이용한 MySQL DB 백업
  2007-04-29 18:17:49 댓글:(0)   조회:575


기존의 DB 백업은 bash 를 셸프로그래밍 소스들이 많이 있습니다.
도스때  config.sys 와 autoexec.bat 를 만져본것 말고는 셸프로그램은 자신이 없어 PHP 를 이용해 셸 프로그램을 만들었습니다.
$dir 은 MySQL 의 DB가 들어있는 디렉토리 (반드시 끝에 /)
$backupdir 은 백업 시킬 디렉토리 ( 반드시 끝에 /)
$id 와 $pw 는 root 의 아이디와 비밀번호
$makeday 는 실행날짜에서 보관할 날짜

실행시키면 $backupdir/20060125 형식의 오늘날짜의 디렉토리가 생성되며 해당 디렉토리에 DB당 DB.sql 과 DB.tar.gz 2개의 파일이 생성됩니다.
다음날 실행하면 20060126 ... 27.. 28 식으로 날짜의 디렉토리가 생성되며 $makeday 날에 의하여 7일 이상 보관된 디렉토리는 삭제 하게 됩니다.
즉, 오늘부터 이전 $makeday 날 동안의 DB가 백업됩니다.

root 상태로 아래의 mydbbackup 파일을 만들어 chmod 로 700으로 권한을 주고
crontab 에 하루에 한번씩 돌아가게 등록시키면 됩니다.

--------------- mydbbackup (id : root / chmod : 700 이상)-------------------
#!/usr/bin/php
    $dir = '/var/lib/mysql/';
    $backupdir = '/dbbackup/';
    $id = 'root';
    $pw = 'qkdlzld2005';
    $makeday = 7;

    if (is_dir($backupdir)) {
        if ($dh = opendir($backupdir)) {
            while (($file = readdir($dh)) !== false) {
                if(is_dir($backupdir.$file) && $file != '.' && $file != '..') {
                    $day = intval((strtotime("now") - strtotime($file))/86400);
                    if($day >= $makeday) {
                        exec("rm $backupdir$file -rf");
                    }
                }
            }
            closedir($dh);
        }
    }

    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) !== false) {
                if(is_dir($dir.$file) && $file != '.' && $file != '..') {
                    $today = date('Ymd');
                    if(!is_dir($backupdir.$today)) {
                        exec("mkdir $backupdir$today");
                    }
                    exec("mysqldump -u $id -p$pw $file > $backupdir$today/$file.sql");
                    exec("tar zcf $backupdir$today/$file.tar.gz $dir$file 2>/dev/null");
                }
            }
            closedir($dh);
        }
    }
    clearstatcache();
?>



 댓글 (0)


백업/기타
페이지: 1 / 2   


     XtraBackup을 이용한 MySQL 백업 및 복76
     MySQL DB 백업 및 복구 - mysqldump504
     [MySQL] 리눅스DB를 윈도우DB로 이전(Too424
       [RE] [MySQL] 리눅스DB를 윈도우DB로 이650
     정보통신부 제공 우편번호부 원본파일746
     mysql 원격접속방법707
     가격비교 참고자료(홈마스타)(3) 512
  리눅스에서 PHP 콘솔을 이용한 MySQL DB 백(홈마스타)576
     utf8 환경으로 자료 conversion 성공기(홈마스타)544
     Mysql-4.1.13 의 한글 문제. | 리눅스(홈마스타)455
     MySQL 5.0 euckr 문자세팅(홈마스타)498
     mySql 처리 함수(홈마스타)1281
     mysql의 주요 함수(홈마스타)1102
     MySQL 백업(홈마스타)483
     mysql 과 함께 사용되는 명령어 사용법(홈마스타)462
     mysql의 최대 성능 향상 방법(홈마스타)786
     리눅스에서 PHP 콘솔을 이용한 MySQL DB 백(홈마스타)513
     PHP로 MySQL 백업받기(홈마스타)691
       [RE] PHP로 MySQL 백업받기(홈마스타)494
     ORDER BY 에서 조건걸기(홈마스타)564
     백업과 복구(홈마스타)555
     리눅스 서버에서 홈페이지의 DB를 백업할려면?(홈마스타)562
     MySQL 데이터 백업 및 복구 | Database(홈마스타)(1) 821
       [RE] MySQL 데이터 및 구조의 백업 - 실제(홈마스타)553
     mysql 주기적으로 백업하기(홈마스타)616
     웹서버와 DB서버를 분리해서 운영할려면?(홈마스타)750
     백업받는 스크립트(홈마스타)676
     서브 쿼리 지원되는 MySQL 버젼...(홈마스타)591
     MySQL Dump뜨는 방법 및 복구 방법(홈마스타)620
       [RE] MySQL Dump뜨는 방법 및 복구 방법(홈마스타)808
≪ [1]  [2]   ≫

복수단어 검색은 공백(space)로 구분해 주세요.



 
최근 글
[손님]
84
76
232
377
621
374
416
241
361
3809
914
954
1200
974
4266
 
인기 글
[손님]
3809
5284
3815
4348
5710
  [홈마스타] oledb 접근 오류
4655
7326
7236
3390
4693
3212
4027
3189
  [나는5] 자동링크 테스트
3223
11781