g4 에서 mysql 백업 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

g4 에서 mysql 백업 정보

g4 에서 mysql 백업

본문

예전에 짱이님이 올려주신 mysql 백업인데요
g3 버변은 잘되는데 g4에서는 백업파일은 생기는데 안에 내용이 없는 빈파일만 생기더라구요
 
// MySqlDump & tar 압축
if($fname) {
        $cmd_1 = "mysqldump -u" . $mysql_user . " -p" . $mysql_pass . " " . $mysql_db . " > " . $DB_dir . $fname;
        $cmd_2 = "tar cfz " . $DB_dir . $fname . ".tgz " . $DB_dir . $fname;
        `$cmd_1`;
        `$cmd_2`;
        $sql_name = $DB_dir . $fname;
        $tgz_name = $DB_dir . $fname . ".tgz";
        echo "
        <p>☞ 백업 파일명 : <a href='$tgz_name'><font color=#800000><u>$fname.tgz</u></font></a></p>
        <p>☞ <font color=#0080C0>백업 파일명을 클릭하여 다운 받으세요!</font></p>";
부분에서 쉘에서는 정상적으로 백업이 되니까요
 
         $cmd_1 = "mysqldump -u" . $mysql_user . " -p" . $mysql_pass . " " . $mysql_db . " > " . $DB_dir . $fname;
부분이 문제 인것 같은데 뭐가 문제인지를 잘 모르겠습니다.
 
 
=====아래는 전체 소스 원문 입니다.
<?
$sub_menu = "100999";
include_once("./_common.php");
if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.", $g4[path]);
$g4[title] = "DB Backup";
include_once("./admin.head.php");
?>
<p>
<table width='450' cellpadding=3 cellspacing=1 class=tablebg>
 <form name='BackUp' method='post' action=''>
 <tr class='ht content subjectbg'>
  <td><b> * MySql DB BackUp</b></td>
 </tr>
 <tr class='ht content contentbg'>
  <td><br><ul>
<?
// 그누보드 관리자 > 그누 MySql DB BackUp
// Create 20041205 by 짱이
// Backup 디렉토리 지정
$DB_dir = "$g4[path]/data/file/DB_BackUp/";
if (!is_dir($DB_dir)) {
 mkdir($DB_dir, 0701);
 echo "<p>☞ 백업디렉토리 <font color=#0080C0>$DB_dir</font>을(를) 생성하였습니다.</p>";
}
if($fdel) {
 $fdel = $DB_dir . "/*";
 `rm -f $fdel`;
}
// MySqlDump & tar 압축
if($fname) {
        $cmd_1 = "mysqldump -u" . $mysql_user . " -p" . $mysql_pass . " " . $mysql_db . " > " . $DB_dir . $fname;
        $cmd_2 = "tar cfz " . $DB_dir . $fname . ".tgz " . $DB_dir . $fname;
        `$cmd_1`;
        `$cmd_2`;
        $sql_name = $DB_dir . $fname;
        $tgz_name = $DB_dir . $fname . ".tgz";
        echo "
        <p>☞ 백업 파일명 : <a href='$tgz_name'><font color=#800000><u>$fname.tgz</u></font></a></p>
        <p>☞ <font color=#0080C0>백업 파일명을 클릭하여 다운 받으세요!</font></p>";
}
// BackUp 파일 이름 지정 폼
else {
        $fname = $mysql_db . "_" . date("ymd") . ".sql";
        echo "
    ☞ <font color=#0080C0>이전 파일 삭제시 체크하세요!</font>
    <input type='checkbox' name='fdel' value='1' onclick='DB_Delete(this.form)'><br>
        ☞ <font color=#0080C0>BackUp 파일 이름을 지정하세요!</font><br>
        <input type='text' name='fname' value='$fname' size='30' class='ib'>.tgz
        <input type='submit' value=' BackUp ' onclick='DB_BackUp(this.form)'>";
}
?>
  </ul></td>
 </tr>
 <tr bgcolor=#E8F4D8>
  <td><b> * File List</b>  <font color=#0080C0><?=$DB_dir?></font></td>
 </tr>
 <tr bgcolor=#F0F8E8>
  <td align=center><table border=0 width=95% cellpadding=2 cellspacing=2>
   <tr class='ht content subjectbg'>
    <td>Name</td><td>Size</td>
               </tr>
<?
// File list, size 보이기
// $files = scandir($DB_dir); // PHP Ver.5
$op_dir  = opendir($DB_dir);
while (false !== ($filename = readdir($op_dir))) {
 $files[] = $filename;
}
$fcount = count($files);
for($i=2; $i <$fcount;  $i++) {
  $fsize = number_format(round(filesize($DB_dir . $files[$i])/1024));
  echo "<tr>
  <td bgcolor=#FFFFFF><a href=$DB_dir$files[$i]>$files[$i]</a></td><td bgcolor=#FFFFFF>$fsize KB</td>
  </tr>";
}
?>
   <tr class='ht content subjectbg'>
    <td colspan=2><?=$fcount - 2?> 개의 파일이 있습니다.</td>
   </tr>
  </table></td>
 </tr></form>
</table>
<script language='javascript'>
    function DB_BackUp(f) {
     if (f.fname.value == '') {
            alert('BackUp 파일명을 입력하세요!');
            f.fname.focus();
            return false;
        }
        f.action = '<?="./_dbbackup.php"?>';
        f.submit();
        return;
    }
    function DB_Delete(f) {
     if (f.fdel.checked) {
         if (confirm('DB_BackUp 디렉토리의 모든 파일이 삭제됩니다.\n\n\이전 파일을 삭제하시겠습니까?')) {
          f.fdel.checked = true;
         }
         else {
          f.fdel.checked = false;
         }
        }
        return;
    }
</script>
<?
include_once("./admin.tail.php");
?>

댓글 전체

mysqldump가 경로에 없을 수 있습니다.
절대경로로 한번 해 보세요.
리눅스라면 대부분이 /usr/local/mysql/bin/mysqldump 정도가 될 겁니다.

$cmd_1 = "/usr/local/mysql/bin/mysqldump -u ...
rolo 님 감사 드립니다.

g3 버젼도 있는데 거기에서는

// MySqlDump & tar 압축
if($fname) {
        $cmd_1 = "mysqldump -u" . $cfg[mysql_user] . " -p" . $cfg[mysql_pass] . " " . $cfg[mysql_db] . " > " . $DB_dir . $fname;
        $cmd_2 = "tar cfz " . $DB_dir . $fname . ".tgz " . $DB_dir . $fname;
        `$cmd_1`;
        `$cmd_2`;
        $sql_name = $DB_dir . $fname;
        $tgz_name = $DB_dir . $fname . ".tgz";
        echo "
        <p>☞ 백업 파일명 : <a href='$tgz_name'><font color=#800000><u>$fname.tgz</u></font></a></p>
        <p>☞ <font color=#0080C0>백업 파일명을 클릭하여 다운 받으세요!</font></p>";
}

이런식으로 되어있고 같은 서버에 g3, g4 를 같이 돌리는데 g3에서는 잘되는데 g4에서만 안되는 것이라서요.
위 방법은 역시 같은 증상으로는 안됩니다.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT