アーカイブ

‘sql’ タグのついている投稿

WordPressのDBを自動でバックアップする方法(プラグインは使いません)

2008 年 10 月 9 日 kohaku コメント 2 件

Masayanさんの記事で完全にビビッてしまった私です。
データベース使用中? – MMRT daily life

やっぱりバックアップは必要ですね。
でも、めんどくさいですw
ってことで、自動でバックアップできればいいわけなので調べました。

今回もhiromasaさんおでさんに色々教えていただきました。
akaさんは欠席w

ちなみにサーバーは、CORESERVERです。

MySQLの定期的バックアップ(cron) : Project MultiBurst
を参考に、
backup-mysql.sh というファイル名で、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh
 
# 日付
timestamp=`date +%Y%m%d`
srcfile=/virtual/ID/backup-mysql/mysql.$timestamp.dump
 
# バックアップで残しておく日数
keepday=14
 
# バックアップするディレクトリ
dest=/virtual/ID/backup-mysql
 
# MySQLのダンプ処理(とりあえず一時ファイルとして保存)
/usr/local/mysql/bin/mysqldump ID --host=localhost -u ID --password=********** > $srcfile
 
# タイムスタンプの取得
old_date=`date "-d$keepday days ago" +%Y%m%d`
 
bkfile=$dest/$timestamp.tar.gz
 
tar zcvf $bkfile $srcfile
# > /dev/null 2>&1
 
if [ $? != 0 -o ! -e $bkfile ]; then
echo "backup faild -- ($srcfile)"
exit 1
fi
 
rmfile=$dest/$old_date.tar.gz
 
if [ -e $rmfile ]; then
rm -f $rmfile
fi
 
rm -f $srcfile

を作ります。

ID、PASSは変更してください。
(IDは4箇所、PASSは1箇所)

/virtual/ID/ に、backup-mysql という名前でディレクトリを作ります。書込み権限も変更します。(707)
/virtual/ID/ に、backup-mysql.sh をアップロードし、実行権限を与えます。(706)

これで準備できました。

あとはCORESERVERのCRONで設定し叩けばOKです。

実際にバックアップされるか実験する方法

時間を設定し、CRONで叩かれるのを待てばバックアップされるか確認できますが、それを待てない人は次の方法でバックアップされるか確認しましょう。

sshでログインし、backup-mysql.sh を実行します。

./backup-mysql.sh

これだけです。
数秒で作成されるはずです。

/virtual/ID/backup-mysql/ の中にファイルが出来上がります。

カテゴリー: WordPress タグ: ,