반응형
디비를 백업하는 과정에서 한번에 dump 를 남기면 만들긴 편하지만 나중에 특정 테이블 복구할때 불편해지는 경우가 있다.
그런 경우 테이블 단위로 백업을 해놨으면 할때가 있는데.
그때 사용할 스크립트.
#!/bin/bash
ID="아이디"
PW="패스워드"
DB="백업디비"
NOW=$(date +"%Y%m%d")
NOWTIME=$(date +"%Y%m%d%H")
BACKUPPATH="/백업저장할위치/$NOW"
if [ ! -d $BACKUPPATH ]; then
mkdir -p $BACKUPPATH
fi
DBS="$(mysql -e 'show tables' -u$ID -p$PW $DB | grep -v 'Tables_in_tourde')"
for table in $DBS
do
BACKUPFILE="$BACKUPPATH/[$NOWTIME]$table.gz"
echo $BACKUPFILE
mysqldump --add-drop-database --opt --lock-all-tables -u$ID -p$PW $DB $table | gzip > $BACKUPFILE
done
ID, PW, DB 와 BACKUPPATH 를 원하는것으로 하면됨.
동작은 저장할 위치에 날짜로 폴더를 만든 다음 [YYYYMMDDHH]테이블명.gz 으로 압축 백업된다.
아무래도 소스에 계정정보가 들어있어서 관리를 잘해야됨.
[덧글]
서버에 gzip 이 깔려있어야함
반응형