BLOG

Go to top


ブログをデータベースごとテスト環境にコピーするシェル

January 18, 2009 12:40 AM

プラグインにしてもテンプレートにしても、テストやバックアップのためにいちいちテスト環境にコピーするのが面倒だったので、自動実行できるようにするためのシェルを作成してみました。個人的な目的で作成したものですが、役に立つかもしれないので公開しておきます。

ダウンロード

Sync.zip (約 2.2 kb)

構成

アーカイブを解凍すると、Sync フォルダが出来ます。この中に、シェル本体である Sync.sh と、files フォルダ、sql フォルダがあります。files フォルダの中には、コピー先で使用するための mt-config.cgi があり、sql フォルダの中には、ブログの公開パスをテスト環境にあったものに修正するための SQL 文を記述した Sync.sql があります。シェルを実行する前に、それぞれのファイルの設定を変更します。

各ファイルの設定

以下のように設定を行ってください(以下の設定方法は、各ファイルに記述されています)。

Sync/Sync.sh の設定
DOCUMENT_ROOT_FROM
コピー元のドキュメントルートをフルパスで記述します。
DOCUMENT_ROOT_TO
コピー先のドキュメントルートをフルパスで記述します。
MT_DIR_TO
コピー先の、Movable Type 設置ディレクトリをフルパスで記述します。
SYNC_SHELL_DIR
シェルを設置するディレクトリをフルパスで記述します。
USERNAME
そのサーバでの、あなたのユーザ名を記述します。Movable Type 設置ディレクトリ以下のファイルはここで記述したユーザが所有者となるので、FTP や SFTP を使った編集ができるようになります。
YOUR_MYSQL_ACCOUNT_FROM
MySQL の、コピー元のデータベースにアクセスするためのユーザ名を記述します。
YOUR_MYSQL_ACCOUNT_TO
MySQL の、コピー先のデータベースにアクセスするためのユーザ名を記述します。
YOUR_MYSQL_PASSWORD_FROM
MySQL の、コピー元のデータベースにアクセスするためのユーザのパスワードを記述します。
YOUR_MYSQL_PASSWORD_TO
MySQL の、コピー先のデータベースにアクセスするためのユーザのパスワードを記述します。
DATABASE_NAME_FROM
MySQL の、コピー元のデータベース名を記述します。
DATABASE_NAME_TO
MySQL の、コピー元のデータベース名を記述します。
Sync/sql/Sync.sql の設定
SITE_PATH_TO
コピー先のブログの公開パスをフルパスで記述します。
SITE_URL_TO
コピー先のブログの URL を記述します。
BLOG_ID
ブログの ID を記述します。

ブログが複数ある場合は、記述されている SQL 分を必要な分だけコピー&ペーストして使うとよいでしょう。

Sync/files/mt-config.cgi については、コピー先で使用する Movable Type の設定を記述してください。シェルの実行時に、コピー元からコピーされた元の mt-config.cgi は削除され、この mt-config.cgi がコピーされます。

実行

上記の設定が完了したら、スーパーユーザでシェルを実行してください。定期的にコピーを実行させたい場合は、cron に登録しておくとよいでしょう。

Comments


Contact me

Copyright © 2005 - 2017 okayama All rights reserved.