로그인

검색

조회 수 12757 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄


우선 php5-cli 가 설치되어 있어야 한다. ( apt-get install php5-cli )

/etc/cron.daily/backup-database.php 파일을 만들어서 루트 실행 권한을 준다. (매일 새벽에 4~5시경 실행)
(chmod 755 backup-database.php 혹은 chmod 700 backup-database.php)그리고 아래의 코드를 넣는다.

본 스크립트는 $디렉토리/$서버이름/$DB네임/$백업파일 에 DB 백업 파일을 저장하게 된다.
60일이 지난 백업 파일은 자동으로 삭데 된다.

 

 #!/usr/bin/php
<?
        $serverName = 'jack';
        $backupDir = '/cutty/database/'.$serverName;
        $mysqldump = '/usr/bin/mysqldump';
        $mysqlId = 'root';
        $mysqlPass = 'password';
        $date = date('ymd', time());
        $expire = date('ymd', strtotime('-60 days'));        $dbConn = new mysqli('localhost', $mysqlId, $mysqlPass);
        $query = $dbConn->query('show databases');
        while($row = $query->fetch_assoc())
        {
                $databases[] = $row['Database'];
                if(!is_dir($backupDir.'/'.$row['Database']))
                {
                        mkdir($backupDir.'/'.$row['Database']);
                }
                exec($mysqldump.' -u '.$mysqlId.' -p'.$mysqlPass.' --single-transaction '.$row['Database'].' > '.$backupDir.'/'.$row['Database'].'/'.$date.'_'.$row['Database'].'.sql');
                exec('gzip '.$backupDir.'/'.$row['Database'].'/'.$date.'_'.$row['Database'].'.sql');
                @unlink($backupDir.'/'.$row['Database'].'/'.$expire.'_'.$row['Database'].'.sql.gz');
        }
?>


 

 

./backup-database.php 식으로 실행하여 테스트 할 수 있다.



리눅스

유용한 정보 및 자료

  1. 우분투 루트권한 얻기

    Date2011.05.15 CategoryServer By보석 Views16158
    Read More
  2. 우분투 AMP(아파치,mysql,php)설치 및 셋팅 - 웹서버운영

    Date2011.05.15 CategoryServer By보석 Views13791
    Read More
  3. 우분투 가상호스트 설정

    Date2011.05.15 CategoryServer By보석 Views28952
    Read More
  4. DB 백업 스크립트 (우분투 기준)

    Date2011.05.15 CategoryServer By보석 Views12757
    Read More
Board Pagination Prev 1 ... 2 3 4 5 6 7 8 9 10 11 Next
/ 11