1. 개요

 매번 데이터 베이스 백업이 귀찮기도하고, 생각해보면 자주 깜박깜박한다.

 

2. 설명

 1) EOF를 이용해서 mysql CLI의 데이터를 Shell 변수에 저장한다.

 2) 변수 앞 뒤에 ( ) 괄호를 붙여주면 Array 타입으로 변경되어 알맞게 들어간다.

 3) 컬럼 네임인 : Database, ~schema 데이터베이스는 성능 및 권한과 관련 된 필드이기 때문에 백업 대상에서 제외한다.

 4) DUMP 시행시 function nowdate 을 이용하여 실시간 시간 정보를 가져와서 네이밍 한다.

 ※ 참고글 

3. 코드

#!/bin/bash

DB_LIST=(`mysql <<EOF
show databases;
EOF
`)

for DB in "${DB_LIST[@]}"
do
    echo "DB NAME -- ${DB}"
    if [ "Database" == "${DB}" ] || [ "information_schema" == "${DB}" ] || [ "performance_schema" == "${DB}" ]; then
        echo "SKIP -- Database Column Name"
        continue;
    fi

    echo "DB BACKUP TARGET -- ${DB}"
    mysqldump ${DB} > `nowdate`"_"${DB}".sql"
done
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기