반응형
출처: http://www.cmsfactory.net/node/10448
MySQL Database(DB)별로 백업하는 쉘 스크립트
MySQL 데이터베이스는 mysqldump로 백업할 수 있습니다.
다음은 한번의 실행으로 MySQL을 Database별로 백업하는 스크립트입니다.
root 사용자로 백업할 때의 코드로, root이 아닌 사용자로 백업할 경우 빨간색 부분을 해당 사용자 이름으로 변경해야 합니다.
#!/bin/bash backup_dir="/home/jb_backup/WebSite" rm -f $backup_dir/*.sql read pw db_list=`mysql -uroot -p$pw -e "show databases" | tail -n+2`; for db_name in $db_list; do if [ "$db_name" != "information_schema" -a "$db_name" != "mysql" -a "$db_name" != "performance_schema" -a "$db_name" != "phpmyadmin" -a "$db_name" != "test" ]; then mysqldump -uroot -p$pw $db_name > $backup_dir/$db_name.sql fi done
각 코드의 의미는 다음과 같습니다.
#!/bin/bash
스크립트 시작을 알립니다.
backup_dir="/home/backup"
백업할 디렉토리를 정합니다.
rm -f $backup_dir/*.sql
이미 존재하는 백업 파일을 삭제합니다.
read pw
MySQL 비밀번호를 입력받습니다.
db_list=`mysql -uroot -p$pw -e "show databases" | tail -n+2`;
DB 목록을 받아옵니다.
for db_name in $db_list; do
DB 목록별로 작업합니다.
if [ "$db_name" != "information_schema" -a "$db_name" != "mysql" -a "$db_name" != "performance_schema" -a "$db_name" != "phpmyadmin" -a "$db_name" != "test" ]; then mysqldump -uroot -p$pw $db_name > $backup_dir/$db_name.sql fi
백업이 필요 없는 DB를 제외하고 각 DB의 이름으로 백업합니다.
done
반복작업을 마칩니다.
반응형
'연구개발 > MYSQL' 카테고리의 다른 글
mysql 대용량 백업 빠르게하기. speed up mysqldump (0) | 2015.04.02 |
---|---|
slave 데이터 불일치 시 (0) | 2015.04.02 |
MySQL 5.6 gtid replication manadatory options (0) | 2015.03.27 |
MySQL MHA(Master High Availability) (0) | 2015.03.24 |
mysqlbinlog (0) | 2015.03.24 |