Movable Typeのrebuild-pagesを使い決まった時間に再構築する

Posted on:2017-07-27

Movable Typeのrebuild-pagesを使い毎日決まった時間に再構築させる

Movable Typeの再構築ボタンを押すのは大好きなんですが、
どうしても運用していると面倒くさくなりますよね。
毎日決まった時間に再構築をしたいということで、rebuild-pagesを使って設置したのでメモとして残しておきます。

Movable Typeのtoolsディレクトリには、コマンドから操作するツールがあるようです。
そういったツールがあるのは、知っていたのですが自分で設置したのは初めてでした。

rebuild-pagesは、再構築用のスクリプトのようです。
このスクリプトを使いcronで毎日決まった時間にブログの再構築を行うことにします。

rebuild-pagesの編集

rebuild-pagesで、細かくオプションを設定することは可能です。
また、コマンドからパイプで指定して実行することも可能です。
今回は、ユーザ名・パスワード・ホスト名を設定しておきます。
※/var/www/hogehoge.co.jp/cgi-bin/は、MT本体が格納されている部分へのパス

vi /var/www/hogehoge.co.jp/cgi-bin/mt/tools/rebuild-pages

rebuild-pagesの以下の部分を変更し保存します。

my $username    = 'MTのユーザ名';
my $password    = 'MTのユーザパスワード';
my $hostname    = 'ホスト名';

必要なモジュールをインストールする

rebuild-pagesを使うには、そのままの環境では使えないようです。
2つほどモジュールをインストールして、環境を整えます。

LWP::UserAgent::Localを設定する

GithubからLocal.pmをダウンロードします。

Local.pmの以下のパスを変更して、サーバに設置します。
MTの本体のlibディレクトリ内に、LWP/UserAgent/Local.pmの形で設置します。

package LWP::UserAgent::Local;の下に、ソースコード追加します。

package LWP::UserAgent::Local;
use lib qw(../lib ../extlib);   // この記述を追加

Web::Scarperをインストール

PerlのWeb::Scarperモジュールをcpanからインストールする

cpan Web::Scraper

cron用に実行コマンドのシェルファイルを作成

cronにそのまま記載しても良いのですが、shell化しておくと便利なので、作成しておきます。
mt.shというシェルファイルを、/var/www/hogehoge.co.jp/sh/mt.shに作成しました。
ご自身の利用環境に合わせて作成してください。

  • チェンジディレクトリでMT本体へ移動
  • rebuild-pagesを実行
  • --blog_idは、再構築したいブログID
#!/bin/sh

cd /var/www/hogehoge.co.jp/cgi-bin/mt
./tools/rebuild-pages --blog_id=1 --blog_id=2 --blog_id=3

作成したシェルに実行権限を与えておきます。

chmod 700 /var/www/hogehoge.co.jp/sh/mt.sh

cronの設定をする

ここまで設定できれば、あとはcrontabに実行したい時間と実行したいコマンドもしくはファイルを書いて上げればOKです。

// rootでの作業
crontab -e

// 毎日0時にmt.shを実行
0 0 * * * /var/www/hogehoge.co.jp/sh/mt.sh

これで、0時にシェルが実行されていれば動作OKです。
確認コマンドは以下になります。

less /var/log/cron

参考サイト