웹마스터 팁

안녕하세요.. 김동욱이라고 합니다.

이번에는 사용자가 sh 명령어를 이용하여, 웹상에서 실행한번으로. 계정 백업하기를 간략히 강좌하고자 합니다.

먼저 ssh, telnet 이 가능한 환경의 사용자의 백업방법을 적겠습니다.

mysqldump -u아이디 -p패스워드 DB 이름 > kowa_mysqldb$(date +%y%m%d).sql
tar cvfzp kowa$(date +%y%m%d).tar.z /home/kowa/public_html/

저는 이렇게 해서 backup.sh 라는 파일(/home/kowa/ 폴더에 저장)로 저장한뒤 ssh, telnet 에서 sh backup.sh 라고 명령하여, 계정전체와 DB 모두를 백업합니다.

위의 방법을 쓴다면 /home/kowa/public_html/ 에 있는 파일을 백업하면서도, 백업된 내용을 외부로 전송이 안되게끔
/home/kowa/ 로 저장이 되어집니다. 단 backup.sh 파일의 위치가 /home/kowa/ (그 이상 하위로 가면, 외부 접속자가 다운로드 할 가능성이 있기때문입니다.)이하여야 합니다.

여기서 한가지더 응용을 한다면 이렇습니다.

back.php 파일등으로 만든다음 아래처럼 적습니다.

<?
exec("mysqldump -u아이디 -p패스워드 DB 이름 > kowa_mysqldb$(date +%y%m%d).sql);
exec("tar cvfzp kowa$(date +%y%m%d).tar.z /home/kowa/public_html/');
?>

이렇게 한다면 웹상에서 back.php 를 실행할경우, 계정전체와 DB 모두를 백업합니다.
보안상 문제점은 있으나, 쓰시는분 나름대로, 파일의 접근 권한을 걸어주시거나, 파일명을 평범하지 않은것으로 하신다면, 다른사람이 실행하기는 매우 어렵습니다.

마지막으로 간략한 설명을 드리겠습니다.
DB 이름 > kowa_mysqldb$(date +%y%m%d).sql
이부분에서는 DB 이름 < 로 할경우, DB파일을 푸는것과 같습니다. > 로 할경우 kowa_mysqldb$(date +%y%m%d).sql 로저장하게 됩니다.

tar 는 묶는 명령어이며, $(date +%y%m%d). 는 041010 로 표현합니다. 만일 2004년으로 표시할때는 y를 ㅐ문자로 쓰시면 됩니다.

잘 안되시거나, 어려우실경우, 저의 홈페이지를 찾아오셔거 질문 게시판에 남겨주시거나, 쪽지를 통해서 의문점을 주시면, 성실히 답변 드리겠습니다.

이상 http://svkowa.net 의 김동욱이였습니다.