출처 : http://blog.nooree.com/post.cfm/shell
오랜만에 crontab에서 사용할 백업용 쉘 스크립트를 정리했습니다. 이런건 대부분 웹에서 찾아서 쓰는데 덤프기능외에 메일발송도 되면 좋을 거 같아서 추가했습니다. 잘 짜여진 건 아니지만 그럭저럭 쓸 만 하네요. 참고로 Ubuntu 시스템에서만 테스트해봐서 다른 배포판에서는 될련지 모르겠습니다. 아래 쉘을 적당히 backup.sh라고 만들고 crontab에 등록하여 사용하세요.
여기서 사용된 백업경로, DB명, DB아이디/패스워드, 메일주소 등은 예시로 든 것이니 환경에 맞춰 변경하세요.
다운로드 : backup.sh.zip
07 | BACKUP_DATE=` date + "%Y%m%d" ` |
10 | WWWROOT_DIR=/home/sample/public_html |
13 | BACKUP_DIR=/home/sample/backup |
16 | mysqldump -usampledb -psampledbpass sampledb > ${BACKUP_DIR}/${BACKUP_DATE}.sql |
19 | tar zcvf ${BACKUP_DIR}/${BACKUP_DATE}. tar .gz ${WWWROOT_DIR} --exclude=${WWWROOT_DIR}/WEB-INF |
22 | chown -R root.root ${BACKUP_DIR} |
23 | chmod -R 700 ${BACKUP_DIR} |
26 | find ${BACKUP_DIR}/ -mtime +3 - exec rm -f {} \; |
29 | 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 |