◀   |   |   ▶
◀   |   |   ▶

CacheUpIt でブログを軽く



β 版として配布の始まった OKAMURA さんの『CacheUpIt』(キャッシュアップイット)を導入してみました。

このプログラムは、外部サービスの JavaScript や画像などを定期的にチェックし、更新されていれば自サイトにアップロードして外部サービスのサーバダウンなどに備えるというものです。外部サーバが重いときにも、自サイトの読み込みが低下しないというメリットもあります。

UNIX システムの知識がない上に、ターミナルの操作が苦手な私は、導入に苦労しましたが、なんとか成功しました。そこで、ターミナルを使わずに MacOSX で稼働する自鯖に設置する方法をエントリします。

(01/06/2005 2カ所追記)

(01/07/2005 3カ所追記)



CacheUpIt の Mac への設置時には、Finder からは見えないディレクトリ、ファイルをいじる必要があります。それにはターミナルの操作が必要ですが、いくつかのシェアウエアを組み合わせることで、ターミナルを使わずに設置することもできます。

(01/06/2005 追記 1/2)設置先は自宅機の iMac(MacOSX 10.3.7)、アップロード先は .Mac の iDisk です。常時起動しておく必要がありますから、「システム環境設定」の「省エネルギー」ペインで「コンピュータがスリープするまでの時間」スライダを「しない」に合わせておいてください。ディスプレイ、ハードディスクはスリープさせてもかまいません。もちろん、Mac の電源を切ったり、手動でスリープさせてもいけません。(/追記)

私は仕事中で忙しそうにしている OKAMURA さんを無理矢理 iChat に引きずり込んで、手取り足取り教えてもらいながらターミナルから設定しましたが(OKAMURA さん、ありがとうございました)、以下の方法でターミナルを使わずに設定できることも確認できました。

最低限必要なものは Path Finder だけです。

Path Finder は、Finder よりも高機能なファイルブラウザです。テキストエディタの機能も持っていますので、不可視ファイルを直接編集することができます。34 ドルのシェアウエアですが、7日間の試用期間は無料で使うことができます。

CacheUpIt をダウンロード/解凍したら、Path Finder を起動して、「表示」メニューから「不可視ファイルを表示」します。解凍した CacheUpIt 本体をウインドウ左上の一時保管エリア「ドロップスタック」にドロップしておき、ハードディスクの最上位の階層から /usr/local/bin と階層をたどって、bin フォルダの中に先ほどの「ドロップスタック」から CacheUpIt をドロップします。

つぎに、設定ファイルを用意します。PathFinder でホームフォルダを開き、「ファイル」メニューの「新規...」サブメニューから「新規ファイル...」を選びます。ファイル名の設定ウインドウが開くので、『.CacheUpIt.conf』とします。先頭に「.」を入れたために不可視ファイルとなりますので、これ以降は PathFinder 以外からは操作できなくなります。開く場合は、PathFinder の「コマンド」メニューから「テキストエディタ で開く」を選択してください。

.CacheUpIt.conf ファイルの中身は OKAMURA さんのエントリを参考に編集します。私の場合は、

$Conf{cache} = [
{
# 名称 - ディレクトリとして有効な名前
name => 'javascripts/BlogPeople/LinkList',
# 取得元の URI
uri => 'http://www.blogpeople.net/display/usr/0f0d4255545d4103.js',
# チェック間隔 - 全体のチェック間隔の何倍か
interval => 6, # 30 分
# アップロード
upload => {
# アップロード場所の名称 - uploadPlace のキー
place => 'javascripts',
# アップロード場所でのファイル名
fname => 'BPLinkList.js',
},
},
{
name => 'javascripts/HaloScan',
uri => 'http://www.haloscan.com/load.php?user=kaoruari',
interval => 2, # 10 分
upload => {
place => 'javascripts',
fname => 'HaloScan.js',
},
},
{
name => 'javascripts/PiyoFeeds',
uri => 'http://www.piyosystems.com/cgi-bin/WebObjects/PiyoFeedsNB.woa/wa/piyoFeeds?userId=kaoru_ar&feedId=darkside&reload=true', # ここに&を使ったのが間違いでした(01/07/2005 追記1/3)
interval => 12, # 60 分
upload => {
place => 'javascripts',
fname => 'PiyoHalo.js',
},
},
{
name => 'javascripts/BlogPeople/TB00007',
uri => 'http://www.blogpeople.net/display/TB_People/tbp00007_utf8.js',
interval => 6, # 30 分
upload => {
place => 'javascripts',
fname => 'TB00007.js',
},
},
{
name => 'javascripts/MyClip',
uri => 'http://clipdata.myblog.jp/list/js?code=7dbc68f6f92d7210a8cbafb1849ebb3f',
interval => 6, # 30 分
upload => {
place => 'javascripts',
fname => 'MyClip.js',
},
},
];
# アップロード先定義の配列
$Conf{uploadPlace} = {
javascripts => {
# アップロード先の URI
uri => 'http://idisk.mac.com/kaoru_ari/Sites/javascripts',
# ユーザ名
user => 'kaoru_ari', # 不要のときは削除
# パスワード
passwd => '私のパスワード', # 不要のときは削除、undef だと起動時に入力
},
};

としました。(# はコメントアウトのマークです) 上の設定では、BlogPeople のリンクリスト、HaloScan のコメントテーブル(?)、トラックバック・ピープルの「iBlogFan」、MyClip のクリップリストが動作しています。(01/07/2005 追記 2/3)PiyoFeeds NB 版の「最近のコメント」は、CacheUpIt でアップロードしたファイルをうまく表示できないので、現在、コメントアウトして検証中です。私の設定ミスが発見され、PiyoFeeds NB 版もキャッシュ表示できるようになりました。要は、キャッシュを取りにいくのがブラウザではないので、『&』を使わずに『&』としなければいけないようです。(/追記)各項目の更新間隔は、私のブログが1日に50〜100ページビューであることから、そのトラフィックを上回らない程度ということで30分間隔を基準にしました。

.CacheUpIt.conf ファイルを保存したら、CacheUpIt が動作するか確認します。ターミナルでコマンドラインを入れるのですが、ここまできたら PathFinder でやってみましょう。

まず、アプリケーションフォルダ内のユーティリティフォルダにある「コンソール」を起動しておきます。「ログ」ボタンをクリックして、ログ項目から「system.log」を選択します。ログが大量に表示されていますので、「消去」ボタンで消去しておいても OK です。

つづいて、PathFider ウインドウの左下の三角のボタンを押して「ターミナルドロワー」を開きます。ここに、先ほど /usr/local/bin にインストールした CacheUpIt をドロップしてリターンキーを押します。

コンソールに戻って、

Jan 5 14:35:30 localhost CacheUpIt[583]: Download for cache javascripts/MyClip
Jan 5 14:35:30 localhost CacheUpIt[583]: Upload for cache javascripts/MyClip

などと表示されていれば成功です。PathFider に戻って、control + c キーで処理を終了します。

最後に、Mac を起動するたびに CacheUpIt が起動するように crontab を編集します。Mac で cron というと、フリーウエアの CronniX が有名ですが、このアプリケーションは、残念ながら「@reboot」(起動ごと)に対応していません。そこで、crontab を PathFinder から直接編集します。

しかし、PathFinder からハードディスク最上階層の /private/var/cron をみると、cron フォルダに進入禁止マークがついて中身が見えません。これは、一般ユーザがこのフォルダにアクセスする権限を持っていないからです。そこで、一時的に root 権限で PathFinder を操作していきます。

まず、PathFinder ウインドウで PathFinder 自身を選択します。「コマンド」メニューから「Root で起動」を選ぶと、新たに PathFinder が起動します。この新しいウインドウでも「不可視ファイルを表示」した状態で先ほどの /private/var/cron ディレクトリを開くと、/private/var/cron/tabs フォルダがあるはずです。これを開いて「新規ファイル」を作成します。ファイル名は、あなたのユーザ名です。拡張子はいりません。

ファイルを作成したら、

@reboot /usr/local/bin/CacheUpIt

と記入します。(@reboot<半角スペース>/usr/... です)これを保存して完了。Mac を再起動した後、コンソールを開いて、system.log を確認してみてください。CacheUpIt が動いているはずです。

(01/06/2005 追記 2/2)私の環境では、起動直後はダウンロードに失敗します。(CacheUpIt が終了してしまうわけではありません)
同様の状態でも、設定した次回の更新チェック時まで結果を待ちましょう。(/追記)

(01/07/2005 追記 3/3)肝心なことを忘れてました。iBlog での変更です。テンプレートや、ナビゲーションエディタ上で、対象の URI をアップロードした JavaScript に置き換えて、プレビューします。正常に表示できるようなら公開して完了です。(/追記)

CacheUpIt を設定すると、わずかながらブログの読み込みが高速化するようです。見かけ上、外部サービスの更新に関しては即時性が失われますが、BlogPeople などの、やや重いサーバからの読み込みが速くなるからだと思われます。外部サービスのサーバがダウンしていても、読み込みが停止する心配もなくなります。

画期的なツールを開発した OKAMURA さんに感謝です。ターミナルが苦手な人も、いかがですか?


投稿: 2005年01月05日 (水) at 11:42   | | | |

◀   |   |   ▶
◀   |   |   ▶