mysqldump를 이용하여 전체를 백업받을경우 용량이 커서 테이블별 핸들링이 좀 힘들다.
물론 용량이 큰 테이블이라면 또 달라지겠지만 아직까지는 dump로 백업을 받을만하다.
검색해보니 소스가 공개(원본경로를 잃어버렸음 ㅠ_ㅠ)되어 있어 약간 수정하여 사용중이다.
크론탭에 약 3시간 간격으로 주간에만 백업받도록 등록하면 자동으로 시간별로 저장된다.
#!/bin/sh
export Today="`date '+%y-%m-%d'`" #오늘날짜
HOUR=`/bin/date +"%H"` #현재실행시간
/bin/mkdir -p /backup/data/$Today/mysql
DBHOST="localhost" # 접속계정
DBUSER=""
DBPASS=""
DBLIST="디비네임1 디비네임2 디비네임n ..." # 백업할 디비
SQLBIN="/usr/local/mysql/bin" # mysql/bin경로
BACKUPDIR="/backup/data/$Today/mysql" #백업하여 저장할 경로
for THISDB in $DBLIST
do
TABLELIST=`${SQLBIN}/mysql -h${DBHOST} -u${DBUSER} -p${DBPASS} ${THISDB} -e "show tables" | /bin/grep -v Tables_in_${THISDB}`
DIR="${BACKUPDIR}/${THISDB}"
/bin/mkdir $DIR # 디비별 디렉토릭 생성
for THISTABLE in $TABLELIST
do
TABLEDIR="${DIR}/${THISDB}.${THISTABLE}.sql"
$SQLBIN/mysqldump -h$DBHOST -u$DBUSER -p$DBPASS $THISDB $THISTABLE > $TABLEDIR
done
done
tar cvfpz /backup/data/$Today/mysql_$Today_${HOUR}h.tar.gz /backup/data/$Today/mysql
/bin/rm -rf $BACKUPDIR # 압축후 삭제
'리스토리의 IT's' 카테고리의 다른 글
무료 가상화 소프트웨어 virtualbox (1) | 2007.05.28 |
---|---|
Mysql root 패스워드 변경하기 (0) | 2007.05.28 |
lynx 설치하기.. (0) | 2007.04.22 |
cron 이용 일정시간마다 php문실행 (0) | 2007.04.21 |
date()포맷 (0) | 2006.12.05 |