DB 자동 백업을 위한 쉘(Shell) 스크립트

DB 자동 백업을 위한 쉘(Shell) 스크립트

#!/bin/sh

#실행시각
NOW_DATE=`date`

#백업날짜
BACKUP_DATE=`date +"%Y%m%d"`

#웹루트
WWWROOT_DIR=/home/sample/public_html

#백업파일을 저장할 경로
BACKUP_DIR=/home/sample/backup

#MySQL백업
mysqldump -usampledb -psampledbpass sampledb > ${BACKUP_DIR}/${BACKUP_DATE}.sql

#웹소스백업
tar zcvf ${BACKUP_DIR}/${BACKUP_DATE}.tar.gz ${WWWROOT_DIR} --exclude=${WWWROOT_DIR}/WEB-INF

#소유주 및 권한변경(타 계정의 접근 차단용)
chown -R root.root ${BACKUP_DIR}
chmod -R 700 ${BACKUP_DIR}

# 오래된 백업데이터 삭제(3일 이상 된 것)
find ${BACKUP_DIR}/ -mtime +3 -exec rm -f {} \;

#메일 발송 (수신메일추가는 공백으로 구분하여 마지막에 열거)
echo "백업시각: ${NOW_DATE}\n백업경로: ${BACKUP_DIR}\n\n위와 같이 DB와 웹파일이 백업되었습니다." | mail -a "From:서버관리자 <noreply@sample.com>" -a "Content-Type: text/plain; charset='UTF-8'" -s "자동서버백업안내" manager@sample.com

exit 0

위와 같이 스크립트를 작성하여 backup.sh 파일로 저장 후 chmod +x backup.sh로 실행권한을 주고 crontab에추가.

 

소스 출처 :  자동 백업을 위한 간단한 쉘(Shell) 스크립트 – 메일발송까지 — nooree’s ColdFusion blog

참고 : http://blog.nooree.com/post.cfm/shell