takaiwa.net

Android、Java、Web系、Linux、マラソン等の備忘録

2011/05/10

Wordpressのバックアップを行うシェルスクリプト

0 件のコメント
前回の記事、

wordpressを手動でバックアップして、新しいドメインへ移行してみる

で、手動で1個1個確認しながら、バックアップをして復元をしたわけですが、まぁこんなことを定期的に手動でやってたら面倒なわけです。

と言うわけで、crontab等で自動的に実行させるべく。シェルスクリプトにまとめてみました。後、前回には入れなかった、ある程度世代を管理しようと思います。と言っても、丸1週間分を残しておこうというものですが。

#!/bin/bash
#
#作業用ディレクトリ作成
#

WORKDIR=`date +%Y%m%d%H%M%S`
echo $WORKDIR
mkdir $WORKDIR

#
# MySQLのダンプ
#
cd $WORKDIR
mysqldump wp_database > dump.sql -u user1 -ppassword

#
# wordpress本体をコピー
#
cp -R /var/www/html/wordpress ./wordpress

#
# まとめて圧縮
#
cd ..
BACKUPFILE="${WORKDIR}bkwp.tar.bz2"
tar cjf $BACKUPFILE $WORKDIR

#
# 作業ディレクトリ削除
#
rm -R $WORKDIR

#
# 世代管理
#
SEDAI=8
BKFILE="*bkwp.tar.bz2"

if [ $(ls $BKFILE|wc -l) -gt $SEDAI ]; then
FILECNT=`expr $(ls $BKFILE|wc -l) - $SEDAI`
for file in `ls -t $BKFILE|tail -n $FILECNT`
do
rm -f $file
done
fi


作業ディレクトリは、単に日付時刻でディレクトリを作成しています。こんな感じで。

$ echo `date +%Y%m%d%H%M%S`
20110509145921


そのディレクトリへ、MySQLからWordpressのデータベースをダンプし、Wordpressを公開しているディレクトリからコピーして、まとめてtar.bz2ファイルに圧縮しています。

実行後に出力されるファイルの例
20110509144054bkwp.tar.bz2


で、最後に、SEDAI=8としている所で、8世代分だけ残して、後は削除するようにしています。

現時点で、バックアップの圧縮ファイル1つ分が7.4MBあり、これが8個あるので大体60MBあります。うーん、まぁ、こんなもんですかね・・

[PR]第3特集:ここだけは知っておきたい シェルスクリプト事始め

2011/05/02

Linuxコマンドと小見出し用のスタイルシートを作ってみた

0 件のコメント
一応、SyntaxHighlighterを入れて、下記のようにハイライトさせてますが、Linuxコマンドとかを見やすくするようなのは、この中に入ってないですし、わざわざこのプラグインを何度も読み込んでたら、ページが重くなるだろうと、ちょちょっと作成して、テンプレートに追加してみました。
.cmd{
background-color: #000000;
color: #ffffff;
font-family: "Consolas","Bitstream Vera Sans Mono","Courier New",Cou rier,monospace !important;
padding: 10px 15px;
margin: 5px 20px;
}

フォントも、記事本文とは変えてます。イメージはこんな感じです。
$ mkdir hogehoge


あと、追加ついでに、

僕は長文の記事を書いてしまうことがあるので、わかりやすいように小見出し用のスタイルシートも作ってみました。

.entry h4 {
border-bottom:1px solid #968;
border-left:15px solid #968;
padding: 2px;
font-weight: bold;
}


こんな感じです。

小見出し




wordpressを手動でバックアップして、新しいドメインへ移行してみる

0 件のコメント
自宅サーバ(Linux)で運用しているこのブログは、現状サーバのHDDが死んじゃうと、データもすっ飛んじゃうある意味危険な状態ではありますが、現時点でそんなに多くの記事を書いてないということもあり、大して被害もないと・・でも、バックアップは必要ということで、ちょっと調べながら、wordpress丸ごとバックアップを取って別のドメインへリストア(復元)する実験をしてみました。まず、wordpressのバックアップには以下の2つのコピーを取る必要がります。

  • mysqlの記事データ

  • worpress本体やUPしている画像などファイル


この2点について、具体的の手順を追ってみます。



mysqlの記事データバックアップ


wordpressファイルより肝心な、記事そのものです。ここだけでも、定期的にバックアップを取っておいた方が良いですね(;^_^A どうせ、大した作業量でもないので・・
と言うわけで、以下のコマンドでwordpressのデータベースを丸ごとダンプします。
$ mysqldump wp_database > dump.sql -u user1 -p

このコマンドを打つと、パスワードを要求されるので、インストール時に設定した(?)パスワードを入力します。それ以外は、

user1:ユーザ名
wp_database:wordpressのデータベース名
dump.sql:ダンプするファイル名

です。ここら辺りの情報を忘れていても、wp-config.phpファイルを開けば書いてあります。ユーザ、パスワード、データベース名が正しければ、カレントにdump.sqlが作成されます。



worpress本体のバックアップ


先ほどのバックアップが、記事そのものだったのに対して、こちらはwordpressの本体です。なので、移行先のサーバへ新規にwordpressをインストールして、MySQLのリストすれば、記事は復活しますが、画像ファイルは失われます。また、wordpressを使っている以上、結構変更したテンプレートやプラグインがあったりするので、それらを復元するべくバックアップします。

FTPクライアントソフトなどを使って、定期的にwindowsマシンへ手動ダウンロードしておく手もありますが、デフォルト総容量がそんなに小さなサイズでもないですし、ファイル数も多いので、結構時間がかかります。LAN内でも・・。

どうせ、windowsマシンにDLするにしても、圧縮した方が早いです。圧縮処理自体もすぐ終わるので。理想は、Linuxから無料のオンラインストレージ(Dropbox)へ保管する予定です。と言うわけで、単に圧縮のコマンドです。
$ tar cvjf bkhana.tar.bz2 hanagosho

bkhana.tar.bz2:圧縮ファイル名
hanagosho:wordpressが入ってる圧縮対象のディレクトリ
※hanagoshoディレクトリがあるカレントでの実行です。

ちなみに、圧縮前のhanagoshoディレクトリの総容量は、以下のコマンドで求めることができます。
$ du -sm hanagosho

オプションにmと付けてるので、MBの単位で表示します。-kだとKBで-bだとByteで表示されます。



リストア(復元)先の環境を作っておく


前提として、takaiwa.net → hanabackup.comドメインへ移行させます。

公開の手順として、まずMySQLファイルからリストアを行います。wordpress本体からリストアをやると、データベース接続エラーとか出ちゃうので。

と言うわけで、先ほどのsqlファイルをリストアさせるデータベースを作成します。まず、root権限でMySQLへ接続。
mysql> create database wp_resotretest;

上記コマンドで、 wp_resotretest というデータベースを作成します。基本的にルート権限で運用しないと思われますので、作成したデータベースへ以下の処理を施してやります。

character設定
mysql> ALTER DATABASE wp_resotretest DEFAULT CHARACTER SET=utf8;



ユーザのアクセス権限
mysql> GRANT ALL ON wp_resotretest.* to user1@localhost identified by 'password';



変更内容の反映
mysql> FLUSH PRIVILEGES;


これらの設定内容は、後ほど展開するwp-config.phpと同期が取れてればOKです。



MySQLデータのリストア(復元)


さて、環境が整ったので、リストアと行きたい所ですが、前述のようにドメインが変るので、テキストエディタ等で、dump.sqlを開きます。takaiwa.net → hanabackup.comへ置換し、保存します。

で、そのファイルを基に、いよいよリストアです。以下のコマンドを実行すると、
$ mysql -u user1 wp_resotretest < dump.sql -p

パスワードが要求されるので、正しく入力すれば、リストア完了です。うーん、簡単・・



wordpress本体のリストア


hanabackup.comの公開htmlファイルのディレクトリへいきなり展開するのではなく、どこか適当なディレクトリへ展開。
$ tar jxvf bkhana.tar.bz2


先ほどのデータベース作成の所で、設定した内容と一致させるべく、展開したファイルからwp-config.phpを探し、データベース名、ユーザ名、パスワードを修正します。バックアップ時と変っていないなら、別にしなくて良いです。

修正が終わったら、ディレクトリを公開用ディレクトリへ移動。
$ mv hanagosho /var/www/html


これで、リストア完了。ブラウザで、hanabackup.comと入力すると、



見事同じものが表示されました。記事をクリックしても、内容が表示されます。


WordPressスーパーカスタマイズ 3.0対応 ポテンシャルを100%引き出すテクニック
下野 宏 下野 理子
ソフトバンククリエイティブ
売り上げランキング: 9706