スキップして最新記事へ移動

CacheUpIt とは

CacheUpIt とは、Web 上のオブジェクト(ページや画像など単一の URL で示されるもの、以下「オブジェクト」)の更新を定期的にチェックし、更新されていればダウンロードして指定場所へアップロードする Perl スクリプトです。一種の同期ツールです。

このスクリプトは .Mac の Web スペースのページやブログに外部サービスを用いて提供されるコンテンツが使用されているときの次のような欠点を解消する目的で作されました。

  • そのサービスのサーバが障害や保守などで一時的に停止したとき、自分のページもタイムアウト待ちなどで表示が著しく遅くなってしまう。
  • そのサービスのサーバの応答が混雑などで遅いとき、自分のページの表示も遅くなってしまう。

最新記事

設定ファイル

17時00分
CacheUpIt の設定ファイルの種類と読み込み順序、書式について述べます。
本文を読む

特徴

CacheUpIt は上にあげた二つの目的を達成する他、次の特徴があります。

オブジェクト毎にチェック間隔を指定できる。

オブジェクトが更新される平均間隔はそのオブジェクト毎に異なります。このため全体でチェック間隔が一律に決められると一方では長すぎ、他方では短すぎることになってしまいます。

そこで CacheUpIt では個々のオブジェクト毎にチェック間隔を指定できるようにしてあります。

更新された場合のみダウンロードする。

対象のオブジェクトの更新日時がその web サーバによってきちんと提供されている場合、CacheUpIt はその更新日時が前回のダウンロード時のものよりも新しくなっている場合にのみダウンロードします。

このためオブジェクトがあるサーバや CacheUpIt が動作しているマシンの回線の負荷を最小限にすることができるのです。

プロキシサーバを使用している LAN にも対応可能。

CacheUpIt はダウンロードおよびアップロードにデフォルトで curl コマンドを使用するようになっています。curl コマンドでは設定やコマンドラインオプションによってプロキシに対応しているので、CacheUpIt も設定によってプロキシサーバに対応可能です。

このため外部と隔絶された LAN 内のクライアントマシンのために、そのゲートウェイとなっているマシン上で CacheUpIt を使用することで、LAN 外のコンテンツを提供することもできます。

様々なプロトコルに対応。

上述のように curl コマンドを使用することで、HTTP, HTTPS, FTP, FTPS, GOPHER, DICT, TELNET, LDAP, FILE といった様々なプロトコルをダウンロードやアップロードに使用できます。

curl コマンド 以外も使用可能。

デフォルトでは CacheUpIt はダウンロード、アップロードともに curl コマンドを利用していますが、これは設定により任意のコマンドに代えることができます。

例えば scp コマンドに差し替えて、リモートにある自分のアカウントのファイルを手元のマシンに同期させることも可能です。

syslog で動作状況をレポート。

CacheUpIt は syslog を用いてその動作状況をレポートします。このため何らかのトラブルが発生しても適切に syslog によるログを監視していれば管理者はアラートを受け取ることが可能です。

動作環境

CacheUpIt を動作させるためには次の条件を満たす必要があります。

  • Perl 5.6 以上がインストールされている UNIX 系 OS であること。

    現在、作者は Linux および Mac OS X で動作を確認しています。

  • curl コマンドがインストールされていること。

    設定を変更することにより curl コマンドに代わる別なコマンドを用いてもよい。ですからこれが必須というわけではありませんが、デフォルトでは必要です。

  • syslog が動作しているか、syslog サーバにログを送信できること。
  • ダウンロード元およびアップロード先に接続できるネットワーク環境であること。

    両方のプロトコルが file である場合はこの限りではありません。しかし、このケースは単なるファイルのコピーなので、シンボリックリンクなど別な手段を用いた方が遥かによいでしょう。

もちろん、常時同期させるためには常時稼働しているマシンで CacheUpIt を用いなければなりません。