バックアップ完了後に指定したメールアドレスへメール送信するまで。
■ディレクトリ構成
/root/XXXXX_bk/backup/yyyyMMdd
.............┣/bin/backup.sh
.............┗/mail/template.txt
■backup.sh
#!/bin/bash
BASE_DIR=/root/XXXXX_bk
BK_DIR=${BASE_DIR}/backup
MAIL_DIR=${BASE_DIR}/mail
BK_DATE=`date +%Y%m%d`
# バックアップディレクトリ作成
mkdir ${BK_DIR}/${BK_DATE}
# データベースバックアップ
mysqldump -uXXXXXXXX -pXXXXXXXX -r ${BK_DIR}/${BK_DATE}/XXXX.backup –single-transaction データベース名 > /dev/null 2>&1
# サイトデータバックアップ
cp -rp /var/www/html/XXXXX ${BK_DIR}/${BK_DATE}/
# バックアップディレクトリに移動
cd ${BK_DIR}
# 逆順ソートして、4つ目以降を取り出して削除(最新3世代だけ残して、あと削除)
ls -r ${BK_DIR} | tail -n +4 | xargs -r rm -rf
# メール送信
echo ${BK_DIR}/${BK_DATE} > ${MAIL_DIR}/path.txt
ls -h -l -G ${BK_DIR}/${BK_DATE} >> ${MAIL_DIR}/path.txt
cat ${MAIL_DIR}/template.txt ${MAIL_DIR}/path.txt > ${MAIL_DIR}/mail.txt
/usr/lib/sendmail -t < ${MAIL_DIR}/mail.txt
exit
■template.txt
From: <hoge@xxxxx.com>
To: <hoge1@xxxxx.com>,<hoge2@xxxxx.com>
Subject: バックアップ完了通知
データバックアップを実施しました。
バックアップファイルは以下のディレクトリに配置しました。
■cron登録
crontab -u root -e
# 1,4,7,10月の1日0時0分にバックアップシェルを実行する
0 0 1 1,4,7,10 * /root/XXXXX_bk/bin/backup.sh