MySQLバックアップ(ローテーション付き)
http://extstrg.asabiya.net/pukiwiki/index.php?MySQL%A5%D0%A5%C3%A5%AF%A5%A2%A5%C3%A5%D7%A1%CA%A5%ED%A1%BC%A5%C6%A1%BC%A5%B7%A5%E7%A5%F3%C9%D5%A4%AD%A1%CB概要 †
MySQLのダンプを生成し、指定された回数のローテートを行うスクリプト。
設定 †
以下の値は環境に合わせて変更する。
ROTATE | 世代管理数 |
DBUSER | MySQLへアクセスするユーザ名 |
DBPASS | 上記ユーザのパスワード |
BACKUPLOG | バックアップの処理ログ出力先(ファイル名) |
使い方 †
バックアップ対象とバックアップ先は実行時に引数で指定する。
- 書式
./mysql-dumpbackup.sh [TargetDatabase] [OUTPUT FILE NAME]
- 例
./mysql-dumpbackup.sh users /backup/hogehoge/users.dump
ソース †
#!/bin/sh # ------------------------ # mysql dump make script # ------------------------ # Version : 1.0 # date : 2010/01/13 export LANG=C export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/mysql/bin:/usr/local/mysql/sbin:$PATH ## Set ROTATE="30" DBUSER="[MySQL USER]" DBPASS="[MySQL PASSWORD]" DATEM=`date +%Y%m` BACKUPLOG="/home/system/logs/backup_"$DATEM".log" # TARGET if [ -z $1 ]; then echo "ERR : target Database unknown" >> $BACKUPLOG echo "ERR : target Database unknown" echo "USE : ./mysql-dumpbackup.sh [TargetDatabase] [OUTPUT FILE NAME]" exit 0 else DBNAME=$1 fi # OUTPUT if [ -z $2 ]; then echo "ERR : Output File unknown" >> $BACKUPLOG echo "ERR : Output File unknown" echo "USE : ./mysql-dumpbackup.sh [TargetDatabase] [OUTPUT FILE NAME]" exit 0 else OUTFILE=$2 fi ## Exec # Rotate test -f $OUTFILE.$ROTATE && rm -rf $OUTFILE.$ROTATE while [ $ROTATE -ge 1 ]; do i=$((ROTATE-1)) if [ -f $OUTFILE.$i ]; then mv $OUTFILE.$i $OUTFILE.$ROTATE fi ROTATE=$i done test -f $OUTFILE && mv $OUTFILE $OUTFILE.1 # MySQL dump mysqldump -u $DBUSER --password=$DBPASS $DBNAME > $OUTFILE # EOF
Last-modified: 2010-01-14 (木) 13:23:14 (5215d)