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>&nbsp;&nbsp;<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");
?>

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

댓글 2개

$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
폴더 안에는 아무것도 없어요
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

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

+
제목 글쓴이 날짜 조회
19년 전 조회 1,093
19년 전 조회 1,439
19년 전 조회 1,243
19년 전 조회 1,750
19년 전 조회 1,537
19년 전 조회 1,447
19년 전 조회 1,122
19년 전 조회 1,173
19년 전 조회 1,512
19년 전 조회 1,594
19년 전 조회 2,303
19년 전 조회 1,502
19년 전 조회 1,774
19년 전 조회 1,601
19년 전 조회 1,689
19년 전 조회 1,537
19년 전 조회 1,512
19년 전 조회 1,509
19년 전 조회 1,478
19년 전 조회 2,051
🐛 버그신고