**概要 [#y8d950fb]
MySQLのダンプを生成し、指定された回数のローテートを行うスクリプト。~

**設定 [#y1944fe0]
以下の値は環境に合わせて変更する。~

|ROTATE|世代管理数|
|DBUSER|MySQLへアクセスするユーザ名|
|DBPASS|上記ユーザのパスワード|
|BACKUPLOG|バックアップの処理ログ出力先(ファイル名)|

**使い方 [#s7a7d559]
バックアップ対象とバックアップ先は実行時に引数で指定する。

-書式
 ./mysql-dumpbackup.sh  [TargetDatabase] [OUTPUT FILE NAME]

-例
 ./mysql-dumpbackup.sh  users /backup/hogehoge/users.dump

**ソース [#za066ea7]

 #!/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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS