WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

mysqldumpとcronでMySQLを自動バックアップする

      2012/12/11

バックアップのためのシェルスクリプト作成

MySQLバックアップユーティリティのmysqldumpでMySQLをバックアップするシェルスクリプトを作成し、それをcronに登録してMySQLを毎日自動でバックアップします。

[root@centos ~] vi backup4mysql.sh    ※バックアップ用スクリプト作成
#!/bin/sh

# バックアップファイルを何日分残しておくか
period=7
# バックアップファイルを保存するディレクトリ
dirpath='/home/centos/bak/mysql'

# ファイル名を定義(※ファイル名で日付がわかるようにしておきます)
filename=`date +%y%m%d`

# mysqldump実行
mysqldump --opt --password=パスワード データベース名 > $dirpath/$filename.sql

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

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

cronで実行するために–passwordオプションで直接パスワードを指定しています。

作成したら動作確認を行います。

[root@centos ~] chmod 0755 backup4mysql.sh
[root@centos ~] backup4mysql.sh

スクリプト内に指定したディレクトリに091211.sqlのようなファイルが生成されていれば成功です。

cronに登録

動作確認が済んだらcronに登録します。
ここでは毎日午前3時に実行するようにします。

[root@centos ~] crontab -e
0 3 * * * ./backup4mysql.sh    ※左のように任意のフォーマットで記載したら:xで保存します
crontab: installing new crontab

 - MySQL , , , , ,