[Shell Script] MySQL 테이블 별로 백업 하기

프로그래밍/BASH SHELL|2022. 9. 8. 08:17
반응형

쉘스크립트를 이용하여 모든 데이터베이스를 테이블 별로 백업하는 방법 입니다.

파일명은 {DB명}.{테이블명}.sql 형식으로 남게 됩니다.

 

# vi mysql_backup_by_table.sh

 

#!/bin/bash

today=`date +%Y%m%d`

# 백업 디렉토리
mkdir -p /backup/${today}
cd /backup/${today}

# MySQL root 패스워드
root_pw='12345678'

# 1) 모든 DB 백업
list=`echo "show databases;" |mysql -uroot -p"$root_pw"`

# 2) 선택한 DB 만 백업 (개행 \n 으로 구분)
#list=`echo -e "mysql\nmonitor\nsysdocu"`

for db in $list;
do
    table_list=`echo "show tables" |mysql -uroot -p"$root_pw" $db`
    for table in $table_list;
    do
        mysqldump -uroot -p"$root_pw" $db $table > ${db}.${table}.sql
        #tar cvzf ${db}.${table}.tar.gz ${db}.${table}.sql --remove-files # 압축 보관 및 원본 삭제
    done
done

 

# chmod 700 mysql_backup_by_table.sh

 

실행

# sh mysql_backup_by_table.sh

 

 

반응형

댓글()