관리자 페이지에서 웹사이트 통째로 백업하기... 정보
관리자 페이지에서 웹사이트 통째로 백업하기...본문
카페24 Euc-kr 계정에서만 테스트 해 봤습니다.
data 폴더 밑에 backup 폴더를 만들어 tar 파일로 압축해 줍니다..
링크를 걸어서 관리자가 다운 받을 수 있게 하고, 삭제할 수 있게끔 만들어주면 좋을거 같습니다..^^
<?
$sub_menu = "100990";
include_once("./_common.php");
check_demo();
if ($is_admin != "super") {
alert("최고관리자만 접근 가능합니다.", $g4[path]);
}
$g4[title] = "웹사이트 소스파일 백업";
include_once("./admin.head.php");
if (!is_dir("../data/backup")) {
@mkdir("../data/backup", 0777);
@chmod("../data/backup", 0777);
// 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
$file = $g4['path'] . "/data/backup" . "/index.php";
$f = @fopen($file, "w");
@fwrite($f, "");
@fclose($f);
@chmod($file, 0777);
}
$location = $_SERVER['DOCUMENT_ROOT'];
$fb = popen("tar -cvpf " .$location . "/data/backup/www_".$g4[time_ymd].".tar " . $location , "r");
echo "$fb<br>\n";
while ($file_line = fgets($fb, 1024)) {
printf("%s<br>\n", $file_line);
}
pclose($fb);
echo "<br><br>사이트의 소스파일 백업을 완료했습니다..";
include_once("./admin.tail.php");
?>
급조한거라 더 쓸만하게끔 만들어 주시리라 생각하고..
자주 들려서 글 남길 수 있도록 하겠습니다.
8
댓글 21개
아니면 데이터 폴더만 백업 받는 건가요 ^^;;
경로만 조정하시면.... 원하는곳만 백업하실수 있겠죠...^^.
header('Content-Disposition: attachment; filename=www_".$g4[time_ymd].".tar "');
$fb = popen("tar -cvpf " .$location . "/data/backup/www_".$g4[time_ymd].".tar " . $location , "r");
욜케하면 백업받으면서 다운까지...
telnet, ftp, phpmyadmin 왔다갔다 할필요 없이 한방에.... 좋습니다.!
그리고, 백업파일이 필요없다 싶으면 선택해서 삭제도 가능하게하구요..
근데 지금보니 백업하면서 바로 다운 받게끔하는 것도 좋겠군요....
48시간님의 말풍선 스킨 충격이였습니다.. 정말 멋지더라구요...^^
누적 백업이 되어서 백업 디렉토리는 제외 해봤습니다.
$location = $_SERVER['DOCUMENT_ROOT'];
$file_name =$location . "/data/backup/www_".$g4[time_ymd].".tar";
$no_backup=$location;
//backup 제외 디렉토리
$no_backup.="/data/backup";
$fb = popen("tar -cvpf " .$file_name. " --exclude=".$no_backup." " . $location , "r");
요고또 넣어주세요. incremental 백업으로 ...
http://blog.naver.com/maenong?Redirect=Log&logNo=60034911916
data/backup폴드에 index.php파일 뿐이네요
사이트의 소스파일 백업을 완료했습니다..
버트을 클릭하면 이렇게 나옵니다.
그런데 폴드에서는 백업파일이 없네요
백업 파일 클릭해 보면 .. 희안하게 메인최상위 루트로 넘어가고 ;;
이것 때문에 그런것 같네요 ^^;
$fb = popen("tar -cvpf " .$location . "/data/backup/www_".$g4[time_ymd].".tar " . $location , "r");
부분에서 "$location . "/data" 사이에 보드가 있는 폴더 명을 넣으시면 되지 않을까 싶습니다.(경로가 틀려서 안되는거 같네염 ^^;;)
저의 경우는 g_bbs라는 폴더 안에 그누를 다 넣었는데 안되서
"$location . "/data" -> "$location . "/g_bbs/data" 같은식으로 바꾸니 작동하였습니다.
cheng 님
사용방법은 위의 내용을 "admin_backup.php"라는 이름의 파일로 만들어서 adm 폴더에 넣으시고
admin.memu100.php 파일에
array("100990", "사이트 전체백업", "$g4[admin_path]/admin_backup.php"),
한줄을 추가해 넣으시면 됩니다.
저같은 경우는 ssh나 telnet으로 로그인하여 tgz로 묶어서 ftp로 다운 받습니다.
#tar cvzf filename.tgz directory 이런 식으로요...
참고만 하세요.