Linux環境でMysqlのダンプを日次で取得するシェルスクリプト

スクリプト本体

mysqldump.sh

#!/bin/bash

# 実行時に指定された引数の数、つまり変数 $# の値が 2 でなければエラー終了。
if [ $# -ne 2 ]; then
  exit 1
fi

# データベース名(引数)
dbname=$1
# バックアップファイルを何日分残しておくか(引数)
period=$2

# バックアップファイルを保存するディレクトリ
dirpath='/data/backup/mysql'

# ファイル名
filename=`date +%y%m%d`.$dbname

# mysqldump + gzip実行
mysqldump $dbname | gzip > $dirpath/$filename.dump.gz

# パーミッション変更
chmod 700 $dirpath/$filename.dump.gz

# 古いバックアップファイルを削除
rm -f $dirpath/`date --date "$period days ago" +%y%m%d`.$dbname.dump.gz

使い方

rootユーザーでcronに以下のような形式で登録。スクリプトへの引数としてDB名と保存期間を指定します。

0 3 * * * /home/ec2-user/sh/mysqldump.sh wordpress 90

毎日午前3時0分にmysqldump.shを実行。
wordpressデータベースのダンプを/data/backup/mysqlディレクトリにgzipで圧縮しつつ取得。
rootユーザー以外は参照できないようパーミッションを変更。
現在日から90日前のダンプファイルが削除されます。

スポンサーリンク
GoogleAdsense



GoogleAdsense



シェアする