#!/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