#title Database Backup HOWTO
= 원격 데이터베이스 백업 스크립트 =

== 작성자 ==
 * 2006/02/06 - 임유빈 ( purewell@gmail.com )

== 목적 ==
 * 원격지에 있는 데이터베이스 백업을 자동화한다.
 * cron 등의 유틸리티에 적용할 수 있다.

== 지원 목록 ==
 * MySQL 4.1 이상
 * PostgreSQL 6.1 이상

== 해야할 일 ==
 * 버그잡기 ( 없음 말고 )

== 필요한 패키지 ==
=== MySQL ===
 * mysql.rpm
=== PostgreSQL ===
 * postgresql.rpm
=== ETC ===
 * coreutils.rpm ( date )
 * bzip2.rpm

== 스크립트 ==
{{{#!/bin/bash

# 백업할 위치
BACKUP_DIR='/home/backup'

# MySQL 세팅
MYSQL_USER='root'
MYSQL_PASS='패스워드'
MYSQL_HOST='xxx.xxx.xxx.xxx'

# PostgreSQL
PGSQL_USER='root'
PGSQL_PASS='패스워드'
PGSQL_HOST='xxx.xxx.xxx.xxx'

DATE=`date +"%Y%m%d"`
ODATE=`date +"%Y%m%d" --date="a week ago"`

###### MYSQL

# 일주일 전 것을 삭제한다.
rm -f $BACKUP_DIR/mysql_$ODATE.sql.bz2

# 백업 커맨드 만들기
mysqldump -A -c -q --skip-lock-tables -h $MYSQL_HOST --password=$MYSQL_PASS --user=$MYSQL_USER | bzip2 > $BACKUP_DIR/mysql_$DATE.sql.bz2


###### PostgreSQL

# 일주일 전 것을 삭제한다.
rm -f $BACKUP_DIR/pgsql_$ODATE.sql.bz2

# 백업 커맨드 만들기
PGPASSWORD=$PGSQL_PASS pg_dumpall -S $PGSQL_USER -h $PGSQL_HOST | bzip2 > $BACKUP_DIR/pgsql_$DATE.sql.bz2
}}}