각 디비별 테이블별 시간별로 백업 받는 쉘 스크립트입니다.
샐행파일을 ~/bin 디렉토리에 넣어서 실행하면
../디비명/테이블명/03h.db 파일로 백업을 받습니다.
테이블별로 백업 받기 때문에 복구 하기도 간편하죠 ^^
물론 해당 디렉토리에 쓰기 가능한 퍼미션을 주어야 겠죠.
실행 화일을 크론을 걸어 두면 좋겠죠^^
크론에 대한 설명은 이곳에 아주 잘 나온것 같아서 생략합니다.
backup.sh 파일명.
#!/bin/ksh
HOST="localhost"
ID="id" # 마스터 아이디
PWD="passwd" # 마스터 비밀번호
DBS="db1 db2 db3 db4 ....." # 백업 받고자 하는 디비명
PATH=`dirname $0` # 현재의 디렉토리 PATH를 설정해줌.
MYDIR="/usr/local/mysql/bin/" # MySql 실행화일 디렉토리
MYSQL="${MYDIR}/mysql -h ${HOST} -u ${ID} -p${PWD} "
DUMP="${MYDIR}/mysqldump -h ${HOST} -u ${ID} -p${PWD} "
SHOW="${MYDIR}/mysqlshow -h ${HOST} -u ${ID} -p${PWD} "
HOUR=`/bin/date +"%H"` # 백업받고 있는 현재 시간 => 나중에 파일 명이 됨.
# 날짜로 설정하고 싶으면 HOUR=`/bin/date +"%d"` 로 해주면 됩니다.
function show
{
DIR="${PATH}/../${DB}"
[ -d ${DIR} ] || /bin/mkdir $DIR # 디비별 디렉토릭 생성
if [ -f ${MYDIR}/mysqlshow ] # 특정 디비내의 테이블 불러오기
then
TB=`$MYSQL $DB -e "show tables" | /bin/grep -v Tables_in_${DB} `
fi
for TMPTB in $TB
do
TBDIR="${DIR}/${TMPTB}"
[ -d $TBDIR ] || /bin/mkdir $TBDIR # 테이블별 디렉토리 생성
$DUMP $DB $TMPTB > $TBDIR/${HOUR}h.db # 시간설정 테이블 백업 받기
done
}
for DB in $DBS
do
show
done
#$DUMP $DB $TABLE > ${PATH}/../${DB}/${TABLE}${HOUR}h.db
샐행파일을 ~/bin 디렉토리에 넣어서 실행하면
../디비명/테이블명/03h.db 파일로 백업을 받습니다.
테이블별로 백업 받기 때문에 복구 하기도 간편하죠 ^^
물론 해당 디렉토리에 쓰기 가능한 퍼미션을 주어야 겠죠.
실행 화일을 크론을 걸어 두면 좋겠죠^^
크론에 대한 설명은 이곳에 아주 잘 나온것 같아서 생략합니다.
backup.sh 파일명.
#!/bin/ksh
HOST="localhost"
ID="id" # 마스터 아이디
PWD="passwd" # 마스터 비밀번호
DBS="db1 db2 db3 db4 ....." # 백업 받고자 하는 디비명
PATH=`dirname $0` # 현재의 디렉토리 PATH를 설정해줌.
MYDIR="/usr/local/mysql/bin/" # MySql 실행화일 디렉토리
MYSQL="${MYDIR}/mysql -h ${HOST} -u ${ID} -p${PWD} "
DUMP="${MYDIR}/mysqldump -h ${HOST} -u ${ID} -p${PWD} "
SHOW="${MYDIR}/mysqlshow -h ${HOST} -u ${ID} -p${PWD} "
HOUR=`/bin/date +"%H"` # 백업받고 있는 현재 시간 => 나중에 파일 명이 됨.
# 날짜로 설정하고 싶으면 HOUR=`/bin/date +"%d"` 로 해주면 됩니다.
function show
{
DIR="${PATH}/../${DB}"
[ -d ${DIR} ] || /bin/mkdir $DIR # 디비별 디렉토릭 생성
if [ -f ${MYDIR}/mysqlshow ] # 특정 디비내의 테이블 불러오기
then
TB=`$MYSQL $DB -e "show tables" | /bin/grep -v Tables_in_${DB} `
fi
for TMPTB in $TB
do
TBDIR="${DIR}/${TMPTB}"
[ -d $TBDIR ] || /bin/mkdir $TBDIR # 테이블별 디렉토리 생성
$DUMP $DB $TMPTB > $TBDIR/${HOUR}h.db # 시간설정 테이블 백업 받기
done
}
for DB in $DBS
do
show
done
#$DUMP $DB $TABLE > ${PATH}/../${DB}/${TABLE}${HOUR}h.db