Movable Type 5系でブログの再構築を自動的に行う。

今更Movable Type 5系を使っている人がどれぐらいいるのかは分かりませんが、未だに使っている私。
当然最新バージョンを追いかけていくのが理想的ですが、個人のブログサイトにはそこまでの体力は...。

Movable Typeで記事を作成・更新したときには、その記事に関連のあるページしか再構築されません。
このため、定期的にサイト全体を再構築しないと古いアーカイブ等の月別アーカイブのリンクが古いままになります。

以下のサイトの記事を参考に、rebuild-pagesを稼働させることにしました。
rebuild-pagesツールの使い方 - The blog of H.Fujimoto

私のサーバではLWP::UserAgent::LocalとWeb::Scraperの他に、以下のモジュールが必要でした。
  • IPC::Run3
  • IO::String

cpanでモジュールを追加しましょう。
# cpan IPC::Run3
# cpan IO::String

以下のコマンドを実行するとサイトの再構築ができますが、少なくとも5.17-jaではうまくいきません。
$ tools/rebuild-pages --user=<ユーザー名> --pass=<パスワード> --blog_id=<ブログID>
※実行した場合には以下のエラーが出力されます
Can't locate object method "AdminScript" via package "MT" at ./tools/rebuild-pages line 164.

rebuild-pagesを次のように修正します。(164行目)
$url = "http://$hostname$script_path" . $mt->config->AdminScript . "?" . $url;

あとはcronに登録して動かすだけでOKです。