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