리눅스, 자료실, 성경검색, 추억의게임, 고전게임, 오락실게임, rootman, http://www.rootman.co.kr
* 54.161.118.57 *
| Home | Profile | Linux | 자료실 | zabbix | Mysql 5.6 | 갤러리 | 성경검색 | 해피니스 | 자유게시판 | 게시물검색 | L | O | R |    

 
[Shell] 데이터 베이스 일괄(table 별도)로 전체 백업하기
 작성자 : rootman
Date : 2005-07-03 15:29  |  Hit : 13,854  
안녕하세요.
rootman.co.kr 운영자입니다.

다들 아시겠지만, 데이터베이스 백업 스크립트입니다.

백업 위치에 따라,

/home2/DATA/mysqldump/20050701/DB list.....
                    /20050702/DB list.....
                    /20050703/DB list.....

이런 식으로 DB 디렉터리 아래 DB 명 및 테이블이름.sql으로 쌓이게 될 겁니다.
매일 매일 백업한다는 가정 하에 7일 전 데이터는 무조건 삭제합니다.

도움이 되시길 바라면서...


#!/bin/sh
# 작성일 : 2005/07/01
# 최종수정일 : 2005/09/14
# http://www.rootman.co.kr
# 제목 : 서버 서비스 상태 표시기
# 별도 수정 사항 : db root, 백업위치(변수 : dump_dir)
#---------------------------------------------------------
dump_date=$(date +%Y%m%d-%H);
dump_dir="/home2/DATA/mysqldump";
DB_user="root";
DB_pass="루트패스워드";


DB_optimize_switch=0;  # 만일 1이면 optimizing까지

for database in `mysqlshow -u ${DB_user} -p${DB_pass} | awk -F" " '{ print $2 }' | grep -v "^$" |grep -v "Databases"`
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

      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 "*--------------------------------------------------------------------------------- *";
echo "* 백업 위치 정보 : ${dump_dir}/${dump_date} ";
echo "*--------------------------------------------------------------------------------- *";
ls -asl ${dump_dir}/${dump_date};
exit 0;

루트맨 (05-09-14 08:56)
 
  기존 자료 삭제 스크립트 기능 추가했습니다.
 
 

Total. 25
번호 분류 제목 작성자 등록일 조회수
25 Shell [날짜] awk를 이용하여 unixtime의 시간 차 구하기 rootman 01-27 7329
24 Shell 쉘배열 (shell array) rootman 05-15 12311
23 Shell [날짜] date 함수로 unixtime의 시간 차 구하기 rootman 12-07 6672
22 Shell [squid] proxy 서버의 캐시 데이터 추출 rootman 03-24 5912
21 Shell [nagios] HP MSA60 P800 하드디스크 에러 검출 스크립트 rootman 06-26 9707
20 Shell [nagios] HP MSA60 P800 스카시 컨트롤러 펌웨어 체크 plugin rootman 04-16 9993
19 Shell Positional Parameter(위치변수) rootman 02-17 8366
18 Shell lynx를 통한 내부 링크와 외부 링크 return rootman 03-14 9093
17 Shell 입력 값은 값이 숫자인지 체크하기 rootman 11-13 7872
16 Shell [공유메모리] critical_create(): semget() failed 발생 시 rootman 01-30 7838
15 Shell [예제] 입력받은 문자열 대문자로 모두 변경하기 (1) rootman 09-12 7591
14 Shell 데이터 베이스 일괄(table 별도)로 전체 백업하기 (101) rootman 07-03 13855
13 Shell [최종수정 : 2005/09/12] 서버 상태 값 주기적으로 메일로 발송… 루트맨 01-27 10800
12 Shell mysql Database 테이블 모두 최적화하기 (7) rootman 03-21 14952
11 Shell [예제] 변수 할당과 치환 (17) rootman 10-14 7807
 1  2  
AND OR