리눅스 서버 백업 - Crontab

by 조쉬 posted Mar 26, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
관리자 권한을 얻은 뒤 /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일이 전 파일은

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

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


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