알고있는 소스를 올린건지 모르겠는데 웹폴더 백업할떼 유용할껍니다.
현제 저는 카페24 를 쓰고 있는데 속도도 잘나오고...

Ps. 제로님, 이소스를 제로5 DB백업 에 추가 하면 더 좋을껏 같은데...


<?php
$password = "12345678" ; // 관리 비번입니다.

/////////////////////////////////////////////////////////
session_start();

if ( $password == "12345678" ) //디폴드 관리 비번
{
 HtmlHead("관리자 비번을 다시 설정하세요:") ;
 echo "<h3 align=center>관리자 비번을 설정하지 않으셨습니다.!!!</h3>";
 echo "<center>관리자 비번바꾸기: <br>"
  . 'Notepad로 zip.php파일을 열고 두분쩨 줄<font color=red>$password = "12345678" </font> 중에 12345678을 다른 비번으로 바꿔주시면 되요.</center>';
 hg_exit();
}

if ( !IsSet($_SESSION['administrator']) )
{
 if ( !IsSet($_POST['user_pass']) )
 {
  HtmlHead("관리자비번: ");
  echo '<h3 align="center">안전을 위해서 인증을 걸쳐야 합니다.: </h3>';
  hg_exit('<br><form action=' . $_SERVER['PHP_SELF']
   . ' method="post">관리자 비번을 입력하세요: <input name="user_pass"> <input type="submit" value="확인"> </form>');
 }
 else
 {
  if ( $password != $_POST['user_pass'] )
  {
   HtmlHead("비번이 틀렸습니다.!");
   MessageBox("관리자 비번이 틀렸습니다!zip.php 파일두번쩨 줄 확인바랍니다.", true);
   hg_exit("", true);
  }
  $_SESSION['administrator'] = "seted";
  header("Location: {$_SERVER['PHP_SELF']}");
 }
 hg_exit();
}


if ( !IsSet($_GET['dirname']) )
{
 show_input_form() ;
}
else
{
 // check if empty
 if ( empty($_GET['dirname']) )
 {
  hg_exit("웹폴더를 입력하세요") ;
 }

 // check valid dirname
 if ( FALSE !== strpos($_GET['dirname'], "/") )
 {
  hg_exit(""/" 폴더명을 "/""""없이 입력하세요) ;
 }
 if ( FALSE !== strstr($_GET['dirname'], "..") )
 {
  hg_exit("".." 폴더이름이 정확하지 않습니다.") ;
 }

 // check valid dir
 if ( !is_dir($_GET['dirname']) )
 {
  hg_exit(""{$_GET['dirname']}" 폴더명을 확인해주세요") ;
 }

 $szData = "" ;
 $szInfo = "" ;

 $file_count = @ZipDir($_GET['dirname'], &$szData, &$szInfo) ;
 $info_size_16byte = @sprintf("%016d", @strlen($szInfo)) ;
 $szData = @sprintf("%016d",$file_count) . $info_size_16byte . $szInfo . $szData ;
 $filename = $_GET['dirname'] . ".dat" ;
 if ( function_exists("gzencode") )
 {
  $szData = gzencode($szData) ;
  $filename .= ".gz" ;
 }
 
 Header("Content-type: application/octet-stream");
 Header("Accept-Ranges: bytes");
 Header("Accept-Length: " . strlen($szData));
 Header("Content-Disposition: attachment; filename=$filename");

 echo $szData ;
}


function show_input_form()
{
 echo HtmlHead("파일 압축") ;
 echo "<center><h4><font color=red>비번 인증완료!</font></h4></center>n";
 echo "<form name="input"><br><br>n"
  . "<center><h3>압축할려는 폴더를 입력하세요. 항상 압축하려는 디랙터리 위에 zip.php 파일이 있어야 합니다.사용완료후zip.php파일은 삭제 바랍니다.</h3></center><p>n"
  . "<center><input name="dirname">n"
  . "<input type="button" value="확인" onClick="show_download_link(dirname.value);"></center>n"
  . "</form>n" ;
 echo "<script>n"
  . "input.dirname.focus();n"
  . "function show_download_link(dir)n"
  . "{"
  . "   var top = (screen.height-200)/2 ;n"
  . "   var left = (screen.width-300)/2 ;n"
  . "   newwin=window.open('', '', 'width=300,height=200,top=' + top + ',left=' + left + ', resizable=0,scrollbars=auto');n"
  . "   url = "{$_SERVER['PHP_SELF']}" + "?dirname=" + dir ;n"
  . "   newwin.document.write('<a href=' + url + '>다운로드<br>다른이름으로 저장"</a>');n"
  . "}"
  . "</script>n" ;
 echo HtmlFoot() ;
}


function ZipDir($szDirName, &$szData, &$szInfo)
{
 // write dir header
 $szInfo .= "$szDirName|[dir]n" ;
 $file_count = 0 ;
 $hDir = OpenDir($szDirName) ;
 while ( $file = ReadDir($hDir) )
 {
  if ( $file=="." || $file==".." ) continue ;

  $szCurFile = "$szDirName/$file" ;

  if ( Is_Dir($szCurFile) )
  {
   $file_count += ZipDir($szCurFile, &$szData, &$szInfo) ;
  }
  else if ( Is_File($szCurFile) )
  {
   $hCurFile = fopen($szCurFile, "rb") ;
   $size = filesize($szCurFile) ;
   $szStream = fread( $hCurFile, $size ) ;
   fclose($hCurFile) ;
   $file_count++ ;

   // write info
   $szInfo .= "$szCurFile|$sizen" ;

   // write data
   $szData .= $szStream ;
  }
 }

 // write dir footer
 $szInfo .= "$szDirName|[/dir]n" ;
 return $file_count ;
}

function HtmlHead($title="", $css_file="")
{
 echo "<html>n"
  . "n"
  . "<head>n"
  . "<meta http-equiv="Content-Type" content="text/html; charset=utf8">n"
  . "<title>$title</title>n"
  . "<style type="text/css">n"
  . "body,pre,td {font-size:12px; background-color:#fcfcfc; font-family:Tahoma,verdana,Arial}n"
  . "input,textarea{font-size:12px; background-color:#f0f0f0; font-family:Tahoma,verdana,Arial}n"
  . "</style>n"
  . "</head>n"
  . "n"
  . "<body>n" ;
}

function HtmlFoot()
{
 echo "<br><hr color="#003388">n"
  . "<center>n"
  . "<p style="font-family:verdana; font-size:12px">Contact us: n"
  . "<a href="http://www.Crazyhouse.cn/" target="_blank">http://www.Crazyhouse.cn/</a></p>n"
  . "</center>n"
  . "</body>n"
  . "n"
  . "</html>" ;
}

function MessageBox($str)
{
 echo "<script>alert('$str');</script>n";
}

function hg_exit($str="", $goback=false)
{
 if ( !empty($str) )
 {
  echo ("<center>$str</center>");
 }
 if ( $goback )
 {
  echo ('<big><center><a href="JavaScript:history.go(-1);">이전페이지로</a></center></big>');
 }
 HtmlFoot();
 exit;
}

?>