MySQLバックアップ(ローテーション付き)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
**概要 [#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/mys...
## 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] [OU...
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] [OU...
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
終了行:
**概要 [#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/mys...
## 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] [OU...
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] [OU...
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
ページ名: