블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

서버 백업하기 crontab

Linux / 2012. 3. 12. 14:30
관리자 권한을 얻은 뒤 /etc/cron.daily/backup 이라는 파일을 만들어봅시다.

# sudo -i
# cd /etc/cron.daily/
# vi backup

다음과 같은 내용을 넣어줍니다.
#!/bin/sh
DATE=`date +"%Y%m%d"`
PREV_DATE=`date --date '5 days ago' +"%Y%m%d"`

BACKUP_DIR=/home/abcd_backup

/usr/bin/mysqldump -u MySQL사용자이름 -p비번 디비이름 > ${BACKUP_DIR}/abcd_mysqldump_${DATE}.sql
chown root.root ${BACKUP_DIR}/abcd_mysqldump_${DATE}.sql
chmod 755 ${BACKUP_DIR}/abcd_mysqldump_${DATE}.sql
rm -Rf ${BACKUP_DIR}/abcd_mysqldump_${PREV_DATE}.sql

tar -zcvf ${BACKUP_DIR}/abcd_backup_${DATE}.tar /home/abcd/public_html/* --exclude=/home/abcd/public_html/data/session/* --exclude=*.tar
chown root.root ${BACKUP_DIR}/abcd_backup_${DATE}.tar
chmod 755 ${BACKUP_DIR}/abcd_backup_${DATE}.tar
rm -Rf ${BACKUP_DIR}/abcd_backup_${PREV_DATE}.tar

(앗 줄바꿈이 이상하게 보이네요 ㅜㅜ)
물론 MySQL 사용자이름, 비번, 디비이름은 자기 사정에 맞게 넣으셔야 하고
서버 버전에 따라 mysqldump가 /usr/bin/에 있지 않은 경우도 있습니다. 각자 그건 맞춰서 하시고..
tar 압축에서 exclude 옵션은 쓸데 없는 세션은 제외하고, 혹시 여기저기 tar파일이 있다면 제외시키는 옵션입니다. 서버 복구나 이전에 그닥 필요 없으니까..
5일이 지난 파일은 하루에 한번씩 삭제해주기 때문에 5일치만 쌓이게 됩니다. (안 그러면 파일이 너무 많이 쌓이겠죠)

설정을 모두 마쳤다면, mod를 실행가능한 755로 바꿔주고, ${BACKUP_DIR} 이라고 지정한 폴더를 만들어주면 작업 끝!

# chmod 755 backup
# mkdir /etc/home/backup


혹시 문제가 발생한다면!
1. root 권한으로 이 작업을 했나요?
2. # sh /etc/cron.daily/backup 이라고 테스트로 실행시켜서 own이나 mod 오류는 없는지, 경로가 잘못된 건 없는지 확인해보세요.


반응형

'Linux' 카테고리의 다른 글

gdb 를 통한 디버깅 따라하기  (0) 2012.06.15
파일 및 디렉토리 복사 실무  (0) 2012.03.18
리눅스 스케쥴  (0) 2012.03.12
Posted by blueasa
, |