1. DB 백업 스크립트
backup_db_projectname.sh
#!/bin/sh
# 백업설정
TODAY=`date +%Y%m%d`
BACKUP_DIR=/root/backup/DB
#필요한 디렉토리 생성
if [ ! -d ${BACKUP_DIR} ]
then
mkdir ${BACKUP_DIR}
chmod 700 ${BACKUP_DIR}
fi
# DB Root 계정정보
DB_USER="db접속계정"
DB_PW="db접속패스워드"
#전체 DB 백업
SQL_FILE="DB_backup_projectname.sql"
mysqldump -u ${DB_USER} -p${DB_PW} 데이터베이스명 > ${BACKUP_DIR}/${TODAY}_${SQL_FILE}
# 압축 및 30일 지난파일 삭제
TGZ_FILE="backup_db_projectname.tar.gz"
cd ${BACKUP_DIR}
tar cvfpz ${BACKUP_DIR}/${TODAY}_${TGZ_FILE} ${TODAY}_${SQL_FILE}
find ${BACKUP_DIR} -ctime +30 -exec rm -f {} \;
2. Source 백업 스크립트
backup_src_projectname.sh
#!/bin/sh
# 백업설정
TODAY=`date +%Y%m%d`
BACKUP_DIR=/root/backup/Source
#필요한 디렉토리 생성
if [ ! -d ${BACKUP_DIR} ]
then
mkdir ${BACKUP_DIR}
chmod 700 ${BACKUP_DIR}
fi
# 압축 및 30일 지난파일 삭제
TGZ_FILE="backup_src_projectname.tar.gz"
cd ${BACKUP_DIR}
tar cvfpz ${BACKUP_DIR}/${TODAY}_${TGZ_FILE} /var/www/웹소스경로/
find ${BACKUP_DIR} -ctime +30 -exec rm -f {} \;
3. Crontab Daily Batch
#크론탭 배치 매일 2시, 2시 30분 백업 실행
00 02 * * * /root/backup_db_projectname.sh > /dev/null 2>&1
30 02 * * * /root/backup_src_projectname.sh > /dev/null 2>&1