データベースバックアップのbashスクリプト

#!/bin/sh

# 今日の日付
TODAY=`date +%Y%m%d`

# 保存先のベースディレクトリ
BASE_DIR=/home/xxx/backup/

# 現在のディレクトリ
SCRIPT_DIR=$(cd $(dirname $0);pwd)

# スクリプトファイルのファイル名
SCRIPT_FILE=${0##*/}

# バックアップするデータベース
DATABASE1=データベース名

# バックアップディレクトリ、ファイル名の指定
BACKUP_FILE1=$BASE_DIR$TODAY/$DATABASE1.sql

# 本日分のバックアップディレクトリを作成
mkdir -p "$BASE_DIR$TODAY"

# バックアップファイルの生成
# Cron実行時は環境変数が設定されないので、パスをしっかり記述 ※サーバーによる
/usr/bin/mysqldump --single-transaction --quick -u ユーザー名 -pパスワード $DATABASE1 > $BACKUP_FILE1

# ディレクトリの中身を変数に格納
FILE_LIST=$(cd $BASE_DIR$TODAY;ls -lh)

# メール文
body="
Backup file was created in the following directory.

-----
$BACKUP_FILE1
----

script file: $SCRIPT_DIR/$SCRIPT_FILE

$FILE_LIST
"

# 通知メール送信
echo "$body" | mail -s "[CRON] Backup Database Complete" notice@xxx.jp

リストアのコマンド

mysql -u ユーザー名 -h ホスト -pパスワード データベース名 < dump.sql
よかったらシェアしてね!

この記事を書いた人

目次
閉じる