데이터 백업중에 한줄씩 출력메시지 보이려면..? > 그누4 질문답변

그누4 질문답변

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

데이터 백업중에 한줄씩 출력메시지 보이려면..? 정보

데이터 백업중에 한줄씩 출력메시지 보이려면..?

본문

파일 제일 하단에 아래와 같은 코드가 있습니다..


inputString("데이터베이스 백업중...<br>");
exec('/usr/local/bin/mysqldump -uUSERNAME -pPASSWORD DBNAME >  DUMPNAME');


inputString("파일 백업중...<br>");
exec('tar cvfzp  /home/PATH/FILE.tar.gz  /home/PATH');


inputString("백업 완료!!<br><br>");
inputString("<a href=\'{$g4[path]}/FILE.tar.gz\'><font color=#ff7200>만일 자동으로 다운로드 창이 뜨지 않는다면 여기를 눌러주세요.</font></a>");


===============
inputString은 단지 자바스크립트의 innerHTML을 이용하는 함수입니다.

디자인 된 해당 페이지는 이미 보이는 상태에서

데이터베이스 백업중 <-- 한줄 표시되고 데이터베이스 백업이 완료된 후에
파일 백업중 <-- 한줄 표시되고
이런식으로 한줄씩 차례대로 출력되었으면 합니다만..

페이지는 하얀 공백의 상태에서 위 과정이 모두 끝나고나서야 디자인된 페이지가 한꺼번에 나옵니다.


한줄씩 동적으로 텍스트가 보이게 하는 방법 없을까요?
  • 복사

댓글 전체

function inputString($str){
echo "<script> parent.document.getElementById('backup').innerHTML += '$str';</script>\n" ;
}

별거 없는데요...
참고로, 본문의 코드는 iframe안에서 사용되기때문에 parent 입니다..
저두 위 문서는 봤었는데..제 파일 용량은 770바이트입니다..;
가능하시다면..
예제소스를 하나 작성해 주실수 없을까요? 관리자페이지에서 사용중인데..
물론 중요한 접속 정보 (아이디, 비번)은 빼구요..

제 소스는 저게 전부거든요. 아이프레임으로 불려지는 파일이고..

본문에 있는 저 코드들을 제외하곤, 제일 상단에
include_once("./_common.php");
하고..관리자인지 체크하는 if문 하나와..

제일 하단에
echo "<script>location.href='{$g4[path]}/backup/FILE.tar.gz';</script>";

이게전부입니다.
아... 아이프레임을 사용하신다고요?
flush는 실행파일의 출력버퍼를 비우는 작업을 하니까
부모창에 영향을 줄리가 없겠네요.
아무래도 프레임형태는 어렵겠네요;;;
아이프레임 없이도 작업해보았지만 결과는 동일합니다.

작성하신 코드중에 exec 행은 제외하고 소스를 공개해주실 수 없을까요?

테스트 결과 잘 되신다고 하니.. 그 소스를 제 환경에 맞게 수정해서 사용해보겠습니다.
<?php

echo '시작<br />';
flush();
sleep(3);

echo '진행<br />';
flush();
sleep(3);

echo '완료';
flush();

?>
<!-- 여기에서 255바이트를 채우세요 -->

위의 코드로 실행해보세요.
그 방식은 저도 알고있는데요. 그룹 메일 보내거나 기타 소스에 비슷하게 많이 쓰고는 있는데요

제 질문은 exec로 압축과 덤프하는 부분에서는 통하질 않는다는 이야기입니다.

압축과 덤프로 테스트하신거 아니었나요?
잘 사용하고 있는 방법입니다. 제대로 테스트는 해보셨나요???
링크확인해보시고 나머지는 알아서 해결하세요 ㅡㅡ^

http://plugs.kr/test.php

<?php

echo '<div id="msg"><div>작업을 준비하고 있습니다.</div></div>';
flush();

echo '<script type="text/javascript">window.document.getElementById("msg").innerHTML += "<div>백업파일의 압축을 요청합니다.</div>";</script>';
flush();

echo '<script type="text/javascript">window.document.getElementById("msg").innerHTML += "<div><strong>백업파일의 압축을 진행합니다.</strong></div>";</script>';
flush();

exec('tar -cvf filename.tar *', $result);

$max = count($result);
echo '<script type="text/javascript">window.document.getElementById("msg").innerHTML += "<div>총 ' . $max . '개의 파일을 압축하였습니다.</div>";</script>';
flush();

echo '<script type="text/javascript">window.document.getElementById("msg").innerHTML += "<div>작업이 정상적으로 완료되었습니다.</div>";</script>';
flush();

?>
링크보았는데 제가 볼때는 한꺼번에 뜨네요..
잘은 모르겠지만 아무래도 제가 사용하는 익스플로러나 서버세팅의 문제인가 봅니다..

답변 감사드립니다.
© SIRSOFT
현재 페이지 제일 처음으로