用意する情報
サーバー情報
・rootユーザーのパスワード(crontabを作成するために、rootで入っておく)
DB情報
・DB名[DB_name]
・Mysqlユーザー名[DB_user]
・Mysqlパスワード[DB_password]
.bash
# rootユーザーとして、サーバーにログインする。
# バックアップをとりたいフォルダを作成する。
cd [your_project]
mkdir daily_backup
cd daily_backup
# バックアップを実行するシェルスクリプトを作成する
vi backup.sh
backup.sh
# !/bin/sh
# バックアップの保存期間(days)
period=7
# バックアップ保存用ディレクトリの指定
dirpath='/home/[your_project]/daily_backup'
# ファイル名を指定する(※ファイル名で日付がわかるようにしておきます)
filename="[your_project]_"`date +%y%m%d`
# 指定したDBのスキーマおよびデータをすべて吐き出す
mysqldump -u[DB_user] -p[DB_password] -hlocalhost [DB_name] > $dirpath/$filename.sql
# パーミッション変更
chmod 700 $dirpath/$filename.sql
gzip $dirpath/$filename.sql
# 保存期間を過ぎたバックアップを削除
appname="[your_project]_"
oldfile=`date +%y%m%d --date "$period days ago"`
ここで、テストとして
.bash
mysqldump -u[DB_user] -p[DB_password] -hlocalhost [DB_name] > backup_test.sql
ls -a
backup_test.sqlが作成されていれば、いよいよcrontabに追加する。
.bash
crontab -e
# 深夜1:50にバックアップを設定する。
50 01 * * * /home/[your_project]/daily_backup/backup.sh