ペチパーノート

WEB開発系Tipsブログです。

MySQLのデータをn日分バックアップするシェルスクリプト

Cronで1日1回実行すればOK

#!/bin/sh

# バックアップファイルを何日分残しておくか
PERIOD=7
# バックアップファイルを保存するディレクトリ
DIRPATH='/path/to/dir/mysql'

# ファイル名定義
FILENAME="mysqldump"`date +%Y%m%d`

# mysqldump実行
mysqldump --opt -Q -c --host=host -u username -ppassword database > $DIRPATH/$FILENAME.sql

# パーミッション変更
chmod 700 $DIRPATH/$FILENAME.sql

# 古いバックアップファイルを削除
OLDFILE=`date --date "$PERIOD days ago" +%y%m%d`
rm -f $DIRPATH/$OLDFILE.sql