MySQLのバックアップのためにダンプを定期的にとる

MySQLのダンプを作成するバッチを作り、cronで動かす。

#!/bin/sh

# 他のユーザからバックアップを読み込めないようにする
umask 077
# バックアップファイルを何日分残しておくか
period=2
# バックアップファイルを保存するディレクトリ
dirpath='/root/mysql_dump'
# ファイル名を定義(※ファイル名で日付がわかるようにしておきます)
fileSuffix=`date +%y%m%d`
# 古いバックアップファイルを削除
oldfileSuffix=`date --date "$period days ago" +%y%m%d`

function dump()
{
  mysqldump --single-transaction -u {ユーザー} -h {ホスト} --password={パスワード} $1 | gzip > $dirpath/$1_$fileSuffix.dump.gz
}

function deleteOld()
{
  rm -f $dirpath/$1_$oldfileSuffix.dump.gz
}

function backup()
{
  dbName=$1
  echo "start $dbName " `date +'%Y/%m/%d %H:%M:%S'`
  dump $dbName
  deleteOld $dbName
  echo "end $dbName " `date +'%Y/%m/%d %H:%M:%S'`
}

echo "***** [$0] start " `date +'%Y/%m/%d %H:%M:%S'` " *****"
backup "{DB名1}"
backup "{DB名2}"
echo "***** [$0] end " `date +'%Y/%m/%d %H:%M:%S'` " *****"

を、保存してcronを設定する。

# mysqldump
0 16 * * * /root/tools/backupDB.sh >> /root/logs/backupDB.log

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA