반응형
서버의 mysql 테이블별로 백업
#!/bin/sh
# 작성일 : 2005/07/01
# 최종수정일 : 2005/09/14
# 제목 : 서버 서비스 상태 표시기
# 별도 수정 사항 : db root, 백업위치(변수 : dump_dir)
#---------------------------------------------------------
dump_date=$(date +%Y%m%d-%H);
dump_dir="/backup";
DB_user="";
DB_pass="";
# 작성일 : 2005/07/01
# 최종수정일 : 2005/09/14
# 제목 : 서버 서비스 상태 표시기
# 별도 수정 사항 : db root, 백업위치(변수 : dump_dir)
#---------------------------------------------------------
dump_date=$(date +%Y%m%d-%H);
dump_dir="/backup";
DB_user="";
DB_pass="";
DB_optimize_switch=0; # 만일 1이면 optimizing까지
for database in `/usr/local/mysql/bin/mysqlshow -u ${DB_user} -p${DB_pass} | awk -F" " '{ print $2 }' | grep -v "^$" |grep -v "Databases"`
do
echo "*--------------------------------------------------------------------------------- *";
echo "* ${database} 시작";
echo "*--------------------------------------------------------------------------------- *";
do
echo "*--------------------------------------------------------------------------------- *";
echo "* ${database} 시작";
echo "*--------------------------------------------------------------------------------- *";
if [ ! -d "${dump_dir}/${dump_date}/${database}" ]
then
mkdir -p ${dump_dir}/${dump_date}/${database};
fi
for table in `mysql -u ${DB_user} -p${DB_pass} -e"show tables" ${database} | grep -v "Tables_in_${database}" | grep -v "^$"`
do
if [ ${DB_optimize_switch} = "1" ]
then
mysql -u ${DB_user} -p${DB_pass} -e"optimize table ${table}" ${database}
fi
then
mkdir -p ${dump_dir}/${dump_date}/${database};
fi
for table in `mysql -u ${DB_user} -p${DB_pass} -e"show tables" ${database} | grep -v "Tables_in_${database}" | grep -v "^$"`
do
if [ ${DB_optimize_switch} = "1" ]
then
mysql -u ${DB_user} -p${DB_pass} -e"optimize table ${table}" ${database}
fi
mysqldump -u ${DB_user} -p${DB_pass} -n -t "${database}" ${table} > ${dump_dir}/${dump_date}/${database}/${table}.sql
echo $table;
done
sleep 1;
done
echo "* ----------------------- 7일 전 디렉터리 삭제 -------------------- *";
Old_Date=`/bin/date -d "7 day ago" +"%Y%m%d-%H"`;
rm -rf ${dump_dir}/${Old_Date};
echo $table;
done
sleep 1;
done
echo "* ----------------------- 7일 전 디렉터리 삭제 -------------------- *";
Old_Date=`/bin/date -d "7 day ago" +"%Y%m%d-%H"`;
rm -rf ${dump_dir}/${Old_Date};
echo "*--------------------------------------------------------------------------------- *";
echo "* 백업 위치 정보 : ${dump_dir}/${dump_date} ";
echo "*--------------------------------------------------------------------------------- *";
ls -asl ${dump_dir}/${dump_date};
echo "* 백업 위치 정보 : ${dump_dir}/${dump_date} ";
echo "*--------------------------------------------------------------------------------- *";
ls -asl ${dump_dir}/${dump_date};
tar cvfz ${dump_dir}/${dump_date}.tar.gz ${dump_dir}/${dump_date}/*
chmod 777 ${dump_dir}/${dump_date}.tar.gz
exit 0;
chmod 777 ${dump_dir}/${dump_date}.tar.gz
exit 0;
서버의 mysql 디비별로 백업
#!/bin/sh
###################
# mysql backup tools #
# code by colorweb #
###################
# mysql backup tools #
# code by colorweb #
###################
_USERNAME="" # DB접속용 사용자 아이디 ex) root
_PASSWORD="" # DB접속용 사용자 비밀번호
_BACKUP_DIR="/backup/" # 백업이 들어갈 디렉토리
_PASSWORD="" # DB접속용 사용자 비밀번호
_BACKUP_DIR="/backup/" # 백업이 들어갈 디렉토리
/usr/local/mysql/bin/mysqladmin -u $_USERNAME -p$_PASSWORD reload >& /dev/null
mkdir -p $_BACKUP_DIR$(date +%Y%m%d)
now_db=`echo "show databases" | /usr/local/mysql/bin/mysql -u $_USERNAME -p$_PASSWORD`
num=1
for dir in $now_db ; do
if [ $dir != "Database" ]; then
/usr/local/mysql/bin/mysqldump -u $_USERNAME -p$_PASSWORD \
--databases $dir > $_BACKUP_DIR$(date +%Y%m%d)/$dir-$(date +%Y%m%d).sql
echo "Database - $dir - Backup Complete!!"
num=$(($num+1))
fi
done
echo "$num database backup complete!!"
mkdir -p $_BACKUP_DIR$(date +%Y%m%d)
now_db=`echo "show databases" | /usr/local/mysql/bin/mysql -u $_USERNAME -p$_PASSWORD`
num=1
for dir in $now_db ; do
if [ $dir != "Database" ]; then
/usr/local/mysql/bin/mysqldump -u $_USERNAME -p$_PASSWORD \
--databases $dir > $_BACKUP_DIR$(date +%Y%m%d)/$dir-$(date +%Y%m%d).sql
echo "Database - $dir - Backup Complete!!"
num=$(($num+1))
fi
done
echo "$num database backup complete!!"
반응형
'mysql' 카테고리의 다른 글
mysql 계정생성 (0) | 2013.02.18 |
---|---|
버전별 MySQL user , db , database 생성 삭제 (0) | 2013.02.18 |
MySQL UTF-8 언어 설정 방법 (0) | 2013.02.18 |
mysql 백업 스크립트 (0) | 2013.02.18 |
스크립트를 이용한 mysql 백업하기 (0) | 2013.02.18 |