2011年02月10日

さくらmysql自動バックアップ

お願いします♪いいねとかつぶやいたりして下さい
 
2012/07/02
mysql5.5以上のバックアップの取得方法を追加。

phpやjsならある程度使えるけど、シェルスクリプトなんて使ったことねぇ。
で、phpでsql自動バックアッププログラム作ったけど、なんか微妙。

ということで、がんばって自動バックアップしてみました。

参考:
http://www.web-20.net/2007/07/mysql.html

1 さくらにログインしてファイルマネージャを起動。一番上の階層まで上がる。
/home/ユーザー名/www/

で、そこに
・shscript (シェルスクリプト用フォルダ)
・backup (mysqlバックアップ取得用フォルダ)

を作成。

2 上記の shscript フォルダに 以下のコード backup.sh で保存し、入れる。

注意!
・コピペで使うときはゴミ空白に注意。あるとバグる。
・保存するときの改行コードは LF にする。
・名前は backup.sh で保存する。
・アップロード後、backup.shのパーミッションは 705 にする。
・番号、ユーザー名、パスワード と書いてあるところはそれぞれ変更する。
ちなみに一番最後のパスワード右のユーザー名はDB名を入れる必要があるが、さくらはユーザー名と
同じなのであえてユーザー名としておく
・プランによってうまく取得出来ないときがある。その場合は mysqldump-4.0 を mysqldump に変更する。

#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

KEEPDAY=3
TODAY=`date +'%y%m%d'`
DBDUMP_FILE=mysql.$TODAY
RMFILE=mysql.`date -v -"$KEEPDAY"d +%y%m%d`.gz
HOME_DIR=/home/ユーザー名
BACKUP_DIR=$HOME_DIR/www/backup

cd $BACKUP_DIR

mysqldump-4.0 -Q --host=mysql番号.db.sakura.ne.jp \
--user=ユーザー名 --password=パスワード ユーザー名 >\
$DBDUMP_FILE

gzip $DBDUMP_FILE >/dev/null 2>&1

if [ $? != 0 -o ! -e $DBDUMP_FILE ]; then
echo "SUCCESS! MAYBE!"
rm -f $RMFILE
exit 0
fi


ここまでで下準備完了!



では、次はcronの準備。
cronの設定で、実行コマンドは
/bin/sh /home/ユーザー名/www/shscript/backup.sh となる。


これでcronを動かしてみれば、backupフォルダに バックアップができているはず。

バックアップの戻し方リストア



phpadmin → インポート → インポートするファイル → テキストファイルの位置

でアップロードすりゃバックアップを復元することができる。


100a,100b,100cなどビジネスプランの場合のバックアップ



#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin

#共通の項目は全てのDBに使い回す
KEEPDAY=3
TODAY=`date +'%y%m%d'`

#mysql5.1 以前は ユーザー名 = DB名 なので --user と --password 横の ユーザー名が同じになる
DBDUMP_FILE=101bmysql.$TODAY
RMFILE=番号mysql.`date -v -"$KEEPDAY"d +%y%m%d`.gz
HOME_DIR=/home/アカウント名
BACKUP_DIR=$HOME_DIR/www/backup

cd $BACKUP_DIR

mysqldump -Q --host=番号mysql.db.sakura.ne.jp \
--user=アカウント名 --password=パスワード アカウント名 >\
$DBDUMP_FILE

gzip $DBDUMP_FILE >/dev/null 2>&1
rm -f $RMFILE


#mysql5.5 からで複数個作れるDBの場合は pass の 右側に DB名を入れる --user 横は ユーザー名 --password 横はDB名になる。
DBDUMP_FILE=番号mysql.$TODAY
RMFILE=番号mysql.`date -v -"$KEEPDAY"d +%y%m%d`.gz
HOME_DIR=/home/アカウント名
BACKUP_DIR=$HOME_DIR/www/backup

cd $BACKUP_DIR

mysqldump -Q --host=mysql番号.db.sakura.ne.jp \
--user=アカウント名 --password=パスワード データベース名 >\
$DBDUMP_FILE

gzip $DBDUMP_FILE >/dev/null 2>&1
rm -f $RMFILE

exit 0


これでいける。
もっとスマートな方法もあるかもしれんけどね。
関連するタグ: PHP cakephp MYSQL さくらサーバー
あなたにとって有用な記事でしたか?是非ブックマークしておくことをおすすめします。
 




ライブラリを配布しちゃったり
webデザイン
Fireworks
HTMLコーディング
CSS
Dreamweaver
携帯サイト
webプログラム
PHP
正規表現
cakephp
MYSQL
javascript
webマーケティング
adwords
analytics
windows7
ショートカットキー
おすすめ情報
サイト
facebook
ライブラリ
配布
アプリ
iphone
ipad
サーバー
さくらサーバー
全ての記事を読む




トップ - 最新の記事一覧 - お問い合わせ