그냥 개발자 블로그

웹서버 백업 시스템 갖추기(리눅스,쉘스크립트이용) 본문

프로그래밍팁/linux

웹서버 백업 시스템 갖추기(리눅스,쉘스크립트이용)

마음이파파 2015. 12. 19. 06:47

웹서버에서 어제의 프로그램소스와 DB스키마를 백업해뒀다가 FTP로 다운로드 받아야할 일이 있어서 백업 시스템을 갖추면서

구현 방법에 대해서 설명 합니다.




mkdir backup

chmod 777 backup


원하는 위치에 백업 디렉토리를 만들어주고 권한을 777로 변경해 줍니다.




cd backup

nano backup.sh


백업 디렉토리 내에 backup.sh 파일을 작성해줍니다.




#!/bin/bash

tar cvfpz 경로/backup/backup.tar.gz 백업할디렉토리경로

mysqldump -u디비계정 -p디비패스워드 디비테이블 > 경로/backup/db.sql


backup.sh 파일 내에 다음과 같이 작성후 저장 해줍니다.
여기서 주의 할점은 경로들을 작성시에 full 경로를 작성해줘야 합니다.





이것으로 파일들과 DB스키마가 통으로 백업할수 있는 시스템을 갖췄습니다.

이하 소개 부분은 백업 방법 입니다.






방법1. 콘솔로 백업할 경우


sh 경로/backup/backup.sh


backup 디렉토리 생성된 파일들을 확인 하실수 있습니다.





 


방법2. crontab 을 이용해 일정 시간 마다 자동으로 동작 시키고자 할 경우


nano /etc/crontab


crontab 파일을 수정해줍니다.



* 4 * * * * root sh 경로/backup/backup.sh


다음은 원하는 매일 새벽 4시에 백업 쉘스크립트를 동작 시키라는 내용인데 이를 추가하고 crontab을 저장 합니다. 







방법3. 브라우저에 주소창을 입력하여 그때 마다 동작 시키고자 할 경우


nano backup.php


php파일을 만들어 줍니다.



<?

shell_exec("경로/backup/backup.sh");

echo "exec";

exit;

?>


위와 같이 작성후 backup.php 파일을 저장해줍니다.

주의할 점은 경로는 full 경로를 작성해 줍니다.