[관리] Mysql 자동 백업 스크립트

#!/bin/sh

#

#

## Chilbong, Kim <san2 at linuxchannel.net>

## 2001.03.01(1)

## 2001.03.03(2)

##

## http://www.linuxchannel.net

##

##

## This SHELL script : $EACH DB dump to $EACH.sql.

##

###################################################

##

## This file name : “mysqldump.cron”

## cp mysqldump.cron /etc/cron.daily/

## chmod 700 /etc/cron.daily/mysqldump.cron

##

###################################################

## user setting

##

##

mysql_host=”localhost”

mysql_rootpasswd=”xxxxxxx”

backupdir=”/var/backup”

mysql_backupdir=”${backupdir}/mysqldump”

mysql_dump=”/usr/local/mysql/bin/mysqldump”

mysql_show=”/usr/local/mysql/bin/mysqlshow”

##

## Are you compress ‘xxxx-2001xxxx-xx.sql’ ?

##     1 = yes(xxxx-2001xxxx-xx.sql.gz)

##     0 = no

db_compress=”1″

##

## not include DB list ?

not_dump_db=”test|test2″

##

## end user setting !!!

####################################################

sysdtime=`date +%Y%m%d-%H`

mysql_connect=”-h $mysql_host -u root -p$mysql_rootpasswd”

mysql_DBs=`$mysql_show $mysql_connect | egrep -v “(${not_dump_db}

|Databases|\\+)” | awk ‘{print $2}’ 2>/dev/null`

mysql_dump_work() {

        mysql_each_DB=”$1″

        mysql_dump_file=”${mysql_backupdir}/${mysql_each_DB}-

${sysdtime}.sql”

        $mysql_dump $mysql_connect $mysql_each_DB >

$mysql_dump_file

        if [ “$db_compress” = “1” ] ; then

                gzip -9 $mysql_dump_file

        fi

}

if [ “$mysql_DBs” != “” ] ; then

        if [ ! -d “$mysql_backupdir” ] ; then

                mkdir -p “$mysql_backupdir”

                chmod 700 “$mysql_backupdir”

        fi

        ## All DB dump to one file(.sql) !!!!

        ## Verbal advice –> LSN tip board : ‘lubzzon’

        ## –all-databases > all_db.sql

        ##

        for mysql_DB in $mysql_DBs ; do

                mysql_dump_work $mysql_DB

        done

        #chmod 600 $mysql_backupdir

        #chown root mysql_backupdir

fi

exit 0

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.