관리자 권한을 얻은 뒤 /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 사용자이름, 비번, 디비이름은 자기 사정에 맞게 넣으셔야 하고
물론 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 오류는 없는지, 경로가 잘못된 건 없는지 확인해보세요.