« 今度は実物「へぇ」ボタン | home雑記帳Topへ | MozillaでHTTPのヘッダが見える! プラグイン »

2003年09月07日(日)

indexの自動rebuild

indexページのカレンダーで今日の日付を色付けするようにしたけど、 エントリやコメントが無いとrebuildされないので、ちょっとイヤ(もっと書けって>自分)
と云う事で、cronで1日1回自動rebuildすることにしました。
巷にも使えそうなものはあるようですが、今回は勉強も兼ねて indexのみrebuildする簡単なperlスクリプトを書いてみましたので、置いておきます。
一応動いてますが、変なところや改善点があったら教えてくださいね(^_^)

スクリプトはこんな感じです
#! /path/to/perl
use strict;
BEGIN {
	my $mtcgi = "/path/to/cgi-bin/mt/";

	chdir($mtcgi)
		or die "can't chdir to $mtcgi\n";
	unshift @INC, $mtcgi . 'lib';
	unshift @INC, $mtcgi . 'extlib';
}

my $blog_id;
if ($#ARGV == -1) {
	$blog_id = 1;
}
elsif ( $#ARGV == 0 ) {
	$blog_id = $ARGV[0];
}
else {
	die "argument error.\n";
}

eval {
	use MT;
	use MT::Blog;
	my $mt = MT->new;
	$mt->rebuild_indexes(BlogID => $blog_id)
		or die $mt->errstr;
};
if ($@) {
	print "index rebuild error: $@";
}
1行目とと4行目の/path/to/は、それぞれの環境に合わせて変更する必要があります。

これをcronで
0 0 * * * /path/to/rebuildIndex.pl >> /var/foo/rebuildIndex.log 2>&1
の様に一日一回走らせています。

参考にしたのはMTのperldoc。
MTのlibフォルダでperldoc MTとやると出てきます。 メインのところはほとんどそのまんま使ってます。 他にも参考になりそうな記述がいくつか。素晴らしい!
あとは、mt.cgiも参考にしました。

Posted by Zephyr : 15:56 | カテゴリ Movable Type

トラックバック

このエントリーのトラックバックURL:
http://flow.dip.jp/x/mt/mt-tb.cgi/29

コメントをどうぞ