mysql 디비를 g4에서 백업할때 > 그누4 질문답변

그누4 질문답변

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

mysql 디비를 g4에서 백업할때 정보

mysql 디비를 g4에서 백업할때

본문

하나의 서버에서 예전에 짱이님이 올려 주심 백업스킨으로 g3버젼에서 백업을 하고 있는데요
그런데 g4에서는 안되는데 원인을 모르겠네요

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>";
}

==========
이렇게 설정되어 아무 이상 없이 동작하는데,

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>";
===========
으로 되어 있는데 백업파일까지는 정상적으로 생성이 되는데 파일 안에 내용이 없습니다.

하나의 서버에서 g3, g4가 같이 돌아가는데 g4에서만 안되는 것으로 봐서 소스상의 문제인것은 맞는것 같은데 모르겠네요

전체소스의 원문입니다.

=====아래는 전체 소스 원문 입니다.
<?
$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");
?>

백업파일은 생성되는데 파일 안에 아무 내용이 없는 빈파일이 생기는 원인을 모르겠네요
  • 복사

댓글 전체

$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;

echo $cmd_1;
echo '<br />';
echo $cmd_2;  이 결과를 한번 보여 주시겠어요?

        `$cmd_1`;
        `$cmd_2`;

그리고 백업 파일이 생긴다는 것은 tgz가 생긴 다는 것이죠?
관심가져 주셔서 감사합니다.
네 이것이 실행되면  디비명년월일.tgz 하고 디비명년월일.sql 하고 2개의 백업파일이 생성 됩니다.

      $cmd_1 = "mysqldump -u $mysql_user -p $mysql_password $mysql_db > $DB_dir$fname";
      $cmd_2 = "tar cfz " . $DB_dir . $fname . ".tgz " . $DB_dir . $fname;

        echo $cmd_1;
        echo $cmd_2;
        echo '<br />'; //이 결과를 한번 보여 주시겠어요?     

이렇게 했을때

mysqldump -u id11b -p id111bpass id11db > ../data/file/DB_BackUp/id11db_060512.sqltar cfz ../data/file/DB_BackUp/id11db_060512.sql.tgz ../data/file/DB_BackUp/id11db_060512.sql

☞ 백업 파일명 : id11db_060512.sql.tgz

☞ 백업 파일명을 클릭하여 다운 받으세요!

화면에는 이렇게 뜨는데요
../data/file/DB_BackUp
폴더 안에는 아무것도 없어요
© SIRSOFT
현재 페이지 제일 처음으로