PHP mysqldump 로 테이블 백업 받는 방법
PHP mysqldump 로 테이블 백업 받는 방법
PHP 에서도 일반계정(유저)의 DB Table 을 백업 받을 수가 있다.
아래의 소스코드를 php 파일로 저장해서 계정정보와 경로 등을 수정하면 된다.
<?php
$DB_HOST = 'localhost';
$DB_USER = 'DB계정';
$DB_PASS = 'DB비번';
$DB_NAME = 'DB네임';
$BACKUP_PATH = '/home/유저/www/';
$BACKUP_NAME = 'DB_'.date("Ymd_His").'.sql.gz';
$BACKUP_FILE = $BACKUP_PATH.$BACKUP_NAME;
$DOWNLOAD_PATH = './'.$BACKUP_NAME;
$command = "mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASS $DB_NAME --opt | gzip > $BACKUP_FILE";
system($command);
echo "<a href='$DOWNLOAD_PATH'>$BACKUP_NAME</a>";
?>
다운로드 받고 바로 삭제가 되기를 원한다면 위의 소스에서 a href 부분을 아래 처럼 해주면 된다.
if(file_exists($DOWNLOAD_PATH)) {
$filename = urlencode($BACKUP_NAME);
header("Content-Type: application/octet-stream;");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".(string)filesize($DOWNLOAD_PATH));
header("Cache-Control: cache, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
readfile($DOWNLOAD_PATH);
unlink($DOWNLOAD_PATH);
}