cron을 이용한 DB자동백업
저 처럼 가상서버 호스팅을 사용한다면 웹 호스팅업체에서 백업은 알아서 하쇼! 라고 하는데...
대신 서버를 내것처럼 이용할 수 있다는 장점이 있죠...
그래서 저는 cron으로 자동백업스크립트를 만들어 자동으로 백업이 되도록 하였습니다.
관련 내용을 찾아보던 중 가장 정리가 잘 된 스크립트 예제를 발견하였습니다.
우선 root로 로그인한후
vi backup.sh를 입력하여 sh파일을 생성해 봅니다.
그리고 아래의 내용을 본인의 환경에 맞게 적당하게 편집한후 저장합니다.
(이때 경로부분은 pwd 명령을 입력하여 절대경로로 입력해줍니다)
---------------------------------------------------------------------------------------
#!/bin/bash
DATE=`date +%Y%m%d`
DB_BACKUP_DIR=/backup/db
WEB_BACKUP_DIR=/backup/web
WEB_DIR=/www_dir
##### MySQL 특정 데이타베이스 백업 #####
mysqldump -uroot -p***** justin > $DB_BACKUP_DIR/justin_$DATE.sql
mysqldump -uroot -p***** xnova > $DB_BACKUP_DIR/xnova_$DATE.sql
##### MySQL 전체 데이타베이스 백업 #####
mysqldump -uroot -p***** -A > $DB_BACKUP_DIR/all_$DATE.sql
##### 웹파일 백업 (web 디렉토리의 모든내용을 백업) #####
tar czfp $WEB_BACKUP_DIR/web_$DATE.tar.gz $WEB_DIR/web
##### 오래된 백업 삭제 (일주일 전의 파일들만 삭제) #####
WEEKAGO=`date -d "7 days ago" +%Y%m%d`
rm $DB_BACKUP_DIR/*$WEEKAGO.sql
rm $WEB_BACKUP_DIR/*$WEEKAGO.tar.gz
##### 권한 수정 #####
chmod -R 600 $WEB_BACKUP_DIR
chmod -R 600 $DB_BACKUP_DIR
##### 백업 후 FTP로 전송한다면 아래 사용 #####
#REMOTE='192.168.0.123' ## FTP 리모트 변수 (서버IP)
#ID='test' ## FTP 아이디
#PWD='1234' ## FTP 패스워드
#REMOTE_DIR='/home/test' ## 리모트디렉토리
#ftp -n -v $REMOTE << EOF ## FTP 접속
#user $ID $PWD ## LOGIN
#prompt
#bi ## binary 모드 변경
#put $DB_BACKUP_DIR/all_$DATE.sql $REMOTE_DIR/all_$DATE.sql
#bye ## 접속종료
#EOF
--------------------------------------------------------------------------------------------
:wq를 입력하여 저장한후
vi /etc/crontab 을 입력하면 cron설정을 수정할 수 있습니다.
0 5 * * * root /your/shell/file/dir/backup.sh
이렇게 입력하면 root 권한으로 메일 새벽 5시에 해당 쉘을 실행시키라는 의미입니다.
cron 파일을 수정한 후
# /etc/init.d/cron restart
명령으로 크론을 재기동해줍니다.
만든 쉘이 정상작동되는지 확인하려면 해당 경로에서
./backup.sh 로 강제실행 시킬 수 있습니다.
대신 서버를 내것처럼 이용할 수 있다는 장점이 있죠...
그래서 저는 cron으로 자동백업스크립트를 만들어 자동으로 백업이 되도록 하였습니다.
관련 내용을 찾아보던 중 가장 정리가 잘 된 스크립트 예제를 발견하였습니다.
우선 root로 로그인한후
vi backup.sh를 입력하여 sh파일을 생성해 봅니다.
그리고 아래의 내용을 본인의 환경에 맞게 적당하게 편집한후 저장합니다.
(이때 경로부분은 pwd 명령을 입력하여 절대경로로 입력해줍니다)
---------------------------------------------------------------------------------------
#!/bin/bash
DATE=`date +%Y%m%d`
DB_BACKUP_DIR=/backup/db
WEB_BACKUP_DIR=/backup/web
WEB_DIR=/www_dir
##### MySQL 특정 데이타베이스 백업 #####
mysqldump -uroot -p***** justin > $DB_BACKUP_DIR/justin_$DATE.sql
mysqldump -uroot -p***** xnova > $DB_BACKUP_DIR/xnova_$DATE.sql
##### MySQL 전체 데이타베이스 백업 #####
mysqldump -uroot -p***** -A > $DB_BACKUP_DIR/all_$DATE.sql
##### 웹파일 백업 (web 디렉토리의 모든내용을 백업) #####
tar czfp $WEB_BACKUP_DIR/web_$DATE.tar.gz $WEB_DIR/web
##### 오래된 백업 삭제 (일주일 전의 파일들만 삭제) #####
WEEKAGO=`date -d "7 days ago" +%Y%m%d`
rm $DB_BACKUP_DIR/*$WEEKAGO.sql
rm $WEB_BACKUP_DIR/*$WEEKAGO.tar.gz
##### 권한 수정 #####
chmod -R 600 $WEB_BACKUP_DIR
chmod -R 600 $DB_BACKUP_DIR
##### 백업 후 FTP로 전송한다면 아래 사용 #####
#REMOTE='192.168.0.123' ## FTP 리모트 변수 (서버IP)
#ID='test' ## FTP 아이디
#PWD='1234' ## FTP 패스워드
#REMOTE_DIR='/home/test' ## 리모트디렉토리
#ftp -n -v $REMOTE << EOF ## FTP 접속
#user $ID $PWD ## LOGIN
#prompt
#bi ## binary 모드 변경
#put $DB_BACKUP_DIR/all_$DATE.sql $REMOTE_DIR/all_$DATE.sql
#bye ## 접속종료
#EOF
--------------------------------------------------------------------------------------------
:wq를 입력하여 저장한후
vi /etc/crontab 을 입력하면 cron설정을 수정할 수 있습니다.
0 5 * * * root /your/shell/file/dir/backup.sh
이렇게 입력하면 root 권한으로 메일 새벽 5시에 해당 쉘을 실행시키라는 의미입니다.
cron 파일을 수정한 후
# /etc/init.d/cron restart
명령으로 크론을 재기동해줍니다.
만든 쉘이 정상작동되는지 확인하려면 해당 경로에서
./backup.sh 로 강제실행 시킬 수 있습니다.
댓글 2개
11년 전
감사합니다 ㅎㅎ
전에 한참해메다가 포기했던건데^^;;
전에 한참해메다가 포기했던건데^^;;
9년 전
감사합니다
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4427 | ||
| 2604 | 8개월 전 | 676 | ||
| 2603 | 8개월 전 | 735 | ||
| 2602 | 8개월 전 | 649 | ||
| 2601 |
|
8개월 전 | 672 | |
| 2600 |
|
8개월 전 | 580 | |
| 2599 | 8개월 전 | 809 | ||
| 2598 | 8개월 전 | 604 | ||
| 2597 |
다케미카코
|
8개월 전 | 757 | |
| 2596 | 8개월 전 | 854 | ||
| 2595 |
|
9개월 전 | 446 | |
| 2594 | 9개월 전 | 608 | ||
| 2593 |
만두먹고또먹고
|
9개월 전 | 938 | |
| 2592 | 9개월 전 | 613 | ||
| 2591 | 9개월 전 | 620 | ||
| 2590 | 9개월 전 | 690 | ||
| 2589 |
|
9개월 전 | 760 | |
| 2588 | 9개월 전 | 479 | ||
| 2587 | 9개월 전 | 796 | ||
| 2586 | 9개월 전 | 644 | ||
| 2585 | 9개월 전 | 511 | ||
| 2584 | 9개월 전 | 578 | ||
| 2583 | 9개월 전 | 499 | ||
| 2582 | 9개월 전 | 644 | ||
| 2581 | 9개월 전 | 600 | ||
| 2580 |
만두먹고또먹고
|
9개월 전 | 517 | |
| 2579 |
|
9개월 전 | 665 | |
| 2578 | 9개월 전 | 649 | ||
| 2577 | 9개월 전 | 629 | ||
| 2576 | 10개월 전 | 562 | ||
| 2575 |
이슈DEV
|
10개월 전 | 993 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기