印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
LinuxMovableType cron でインデックスを再構築

自動的に再構築するインデックスを減らして,記事の再構築を軽くしたい。しかし自動で再構築しないインデックスは手動で再構築しなければならず,手間がかかる。mt-rebuild スクリプトを使うと,この悩みから開放される。

■ ■ ■

Movable Type では,再構築するインデックスやアーカイブが増えるにしたがって,再構築にかかる時間はどんどん長くなる。特に Movable Type 2.661 の場合,3.x に導入されているダイナミックパブリッシングという手段がないため,この問題は深刻である。

記事の再構築の時間をできるだけ短くする方法の1つに,自動的に再構築するインデックスを減らすという方法がある。テンプレートの編集画面で,「インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する」のチェックボックスをOFFにすれば自動的に再構築されることがなくなるため,1つの記事の再構築時間が短くなる。コメントやトラックバックの反応も早くなるというのも嬉しい。

そこで,「再構築は1日に1回でいい」というインデックスを分離して,cron のジョブとして自動的に再構築させることにした。利用するのは,mt-rebuild という Perl スクリプトである。プラグインではない。導入手順は以下の通り。

  1. tima mt code. から mt-rebuild.tar.gz をダウンロード
  2. 解凍した mt-rebuild.pl を Movable Type をインストールしたディレクトリ(mt.cfg のあるディレクトリ)に設置
  3. パーミッションを 700 に変更
  4. コマンドラインから実行してテスト
  5. テストに成功したコマンドを crontab に記述

crontab には,例えば次のように書いておく。mt-rebuild.pl へのパスは自分のサイトに合わせる必要がある。このようなパスの指定はセキュリティホールになる可能性があるので,あまりオープンにしない方がよいのだが,まぁいいや。

6 0 * * * /home/httpd/opentype/mt-rebuild.pl -mode="index" -blog_id=1 -template="Main Index"
7 0 * * * /home/httpd/opentype/mt-rebuild.pl -mode="index" -blog_id=1 -template="Comment Index"
8 0 * * * /home/httpd/opentype/mt-rebuild.pl -mode="index" -blog_id=1 -template="Trackback Index"
9 0 * * * /home/httpd/opentype/mt-rebuild.pl -mode="index" -blog_id=1 -template="Photo Archive Index"
11 0 * * * /home/httpd/opentype/mt-rebuild.pl -mode="index" -blog_id=1 -template="BlogTimes Archive"

メインインデックスは,日付が変わったときに再構築したい。nlog(n): 去年の今日を表示するnlog(n): Wikipedia で見る今日は何の日? をやっているので,今日の日付にしたいからである。

その他は,それほど頻繁に更新する必要がないインデックスである。

mt-rebuild.pl スクリプトの引数に何が指定できるかについては,スクリプト内に書かれているが,説明文は当然ながら英語である。Nergal 業務日誌: MovableTypeを定期的に再構築させる さんが日本語訳をしてくれている。

もちろん,crontab に1つ1つ書くのではなく,シェルスクリプトにまとめておいてそれを1回呼び出すだけでもよい。メンテナンスを crontab でしたいのか,シェルスクリプトでしたいのかは個人の好みの分かれるところだろう。

Posted by n at 2005-05-30 01:33 | Edit | Comments (1) | Trackback(2)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
cronでMovableTypeを定期的に再構築
新規エントリー投稿時やコメント、トラックバック時に、インデックステンプレートの「再構築オプション」にチェックがある場合、その都度再構築されます。PHPでモジュール化しているとはいえ、インデックステンプレートの数が多いので、いかんせん時間がかかる。。。 Trackbacked from: Project MultiBurst at January 07, 2006 01:19
WindowsでCron(クローン)

UNIXというOSでは、Cron(Command Run ON)という便利な機能があります。

Cronとは、例えば、「毎日この時間に、このプログラムを動かしてね!」と設定しておけば、毎日コンピューターが起動さえしていれば、モンクも言わず自動でプログラムを動かしてくれるとい...

Trackbacked from: ネットビジネス用CGI Perl HTML Javascriptの情報サイト at March 29, 2006 00:12
Comments

参考になりました。
ありがとうございました!!

Posted by: showBOO at January 07, 2006 00:56
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?