2004年01月19日 (月)

iBlog サイト引っ越し用スクリプト iBlogMover

.Mac 上で iBlog サイトを運用していて容量が足りなくなってきたり、CGI が使えないなどの理由で iBlog サイトを .Mac から他のサイトに移行するときに使うスクリプト iBlogMover を作ったので公開します。

blog のサイトは TrackBack などにより他のサイトとのリンクがかなり絡み合っています。このため安易な移動を行うとせっかくリンクしてくれた方達に申し訳ないと感じる人が多いのではないでしょうか。このスクリプトは旧サイトのページを新しいサイトの対応するページに自動でジャンプする HTML に置き換えます。また旧サイトの残骸をなるべく小さくするために html ファイル以外のファイルを全て消去します。これによって旧サイト自体が閉鎖にならない限り
  • 旧サイトに張られたリンクは間接的に維持される。
  • 旧サイトに来た人に新しいサイトを伝えるとともに、対応する新サイトのページに自動で案内できる。
  • 旧サイトの使用容量は最小限に抑えられる。

という効果が得られます。

私自身はまだ .Mac から移動するつもりはありませんが、残り容量が少なくなってきていることや TrackBack などの CGI が使えないのでかなり引っ越しも視野に入れています。今後、各メンバーの iBlog による blog が成長してゆくに従って iBlogger の .Mac 離れが予想されます。.Mac のスタッフの方がもしこれを見ていらしたら、是非 CGI を設置可能にする措置や iDisk の追加容量の低費用化を検討してください。

[2004 01/24]パッケージに同梱のサンプルテンプレートファイルに間違いがありました。訂正版パッケージについてのエントリからダウンロードするようにしてください。

最初に強調しておきます。
このスクリプトの実行はあなたの責任で行ってください。私はなんの保証も補償もしません。
何故こんなわかり切ったことを強調するかというと、このスクリプトの目的からわかるように、間違った操作をすると、折角のサイトのコンテンツが失われてしまう危険があるからです。iBlog サイトの場合、内部データが残っていれば [プレビュー状態をリセット後、プレビュー] で再度構築することができますが、このスクリプトを一般のサイトのローカルコピーに応用した場合はそうだとは限りません。

脅しついでにもう一つ。私は blog を引っ越しさせていないので実用したことはありません。テストだけしました。ひょっとするとあなたは人柱第一号かもしれません。

改変再利用は自由に行って結構です。ただし商用で利用したり商用でソースを参考にする場合は著作権を尊重してください。30 分で書けるスクリプトなので堅いこと言いませんから。

【インストール】
iBlogMover はそうそう頻繁に使うものではないのでインストールする必要はないと思いますが、一応インストール方法を書いておきます。インストールせずに使う方法については後述します。
  1. iBlogMover-1.0.tar.gz をダウンロードして解凍する。
    私の iDisk の Public フォルダーの iBlog の下に iBlogMover-1.0.tar.gz があります。まずはこれをダウンロードして解凍してください。
  2. MovePage.txt をテンプレートセット置き場にコピーする。
    テンプレートセット置き場はあなたの Mac OS X のホームから
    Library
    Application Support
    iBlog
    とフォルダーを開いたところにある TemplateSets フォルダーです。この中にコピーしてください。
  3. iBlogMover を PATH が通ったディレクトリにコピーする。
    PATH が通ったディレクトリ(フォルダーと思えばよい)とはターミナル用のコマンド置き場で、ここにあるコマンドはファイル名だけで実行できるようになります。どこが実際に PATH が通ったディレクトリを調べるには、ターミナルを起動して
    echo $PATH
    とタイプして改行してください。幾つかのディレクトリが : で区切られて列挙されます。デフォルトの状態ではシステム用のコマンド置き場しかないと思います。もし /usr/local/bin がこの中に含まれていたら iBlogMover をそこにコピーしてください。含まれていなくても可能ならば /usr/local/bin というディレクトリを作成してそこに PATH を通して iBlogMover をそこにコピーすることをお薦めします(iblogPatcher も同じです)。PATH を通す方法が書いてあるサイトを探したらそのものずばりがありました。 ただし、これは tcsh がデフォルトのシェルになっている 10.1, 10.2 の場合です。Panther では bash がシェルになっているようなので少しずつ違いがあります。ですが操作の意味と構造は全く同じです。
    /usr/local/bin を使ってほしくて長々と書きましたが、面倒な方は /usr/bin の下にコピーしましょう。そのときには管理者権限が必要です。
  4. 必要ならば iBlogMover.html をどこかにコピーしておく。
    このファイルは iBlogMover のマニュアルです。
    捨ててしまっても iBlogMover 自身からいつでも参照できます。ただし EUC-JP で出力されます。

【使い方: インストールしてある場合】
ターミナル上で次のようにします。
iBlogMover BlogUUID 古いURL 新しいURL

赤い字の斜体の部分をあなたの場合の値で置き換えてください。その部分の説明をします。
BlogUUID
引っ越しする blog のプレビューのときに使用されるディレクトリ名で、B で始まり数字が幾つか続きます。このディレクトリは Mac OS X のあなたのホームから
Sites
iblog
と辿ったフォルダーの中にフォルダーとしてあります。
しかし、実際に使用している BlogUUID ですと後で [プレビュー状態をリセット後、プレビュー] をしなければなりません。これは時間がかかる処理ですので、BlogUUID が名前のフォルダーを別なところにコピーして、操作終了後にもとに戻すのがよいでしょう。
これを引っ越ししない blog のものと間違えたりするとそっちの blog の全ファイルが置き換えられたり削除されたりしてしまうので十分に確認してください。
古いURL
引っ越し前の blog のベース URL です。例えばこの blog でしたら http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips です。
新しいURL
引っ越し後の blog のベース URL です。この blog は引っ越ししていないので具体例は挙げられませんが、例えば http://new.your.server/%7Eyourname/iblog という感じです。最後に / を入れない方がサンプルとして入れた MovePage.txt でスマートな html を作ることができます。

これでローカルのプレビューディレクトリの準備ができたので、古い公開場所にコピーします。iBlog で行ってもよいですが、公開内容を一旦削除すると余分なファイルが残らずにすっきりします。

【使い方: インストールしていないとき】
iBlogMover.sitを解凍してできたディレクトリを /Users/YOU/Desktop/iBlogMover だとします。フォルダー名の後ろに日本語が付いていたら取り去っておいてください。うまく日本語が扱えない場合があります。

iBlogMover の実行はターミナル上で次のようにします。
/Users/YOU/Desktop/iBlogMover/iBlogMover ¥
--template /Users/YOU/Desktop/iBlogMover/MovePage.txt ¥
BlogUUID 古いURL 新しいURL

赤い字の斜体の部分をあなたの場合の値で置き換えてください。その部分の説明はインストールしてあるときの使い方を参照してください。特に BlogUUID の説明はよく読んでください。
これでローカルのプレビューディレクトリの準備ができたので、古い公開場所にコピーします。iBlog で行ってもよいですが、公開内容を一旦削除すると余分なファイルが残らずにすっきりします。

【iBlog 以外のサイトに応用する】
この iBlogMover は幾つかのデフォルト値が iBlog 用になっているだけで、一般のサイトのローカルコピーにも使えます。あなたのサイトが次のようになっているとします。
ローカルのベースディレクトリ: /Users/YOU/Sites/MySite
古い URL: http://your.old.server/%7EYOU
新しい URL: http://your.new.server/%7EYOU

この場合は次のようにして iBlogMover を使うことで古い URL 以下を新しい URL へのコンパクトなリダイレクトサイトにできます。
iBlogMover --previewDir /Users/YOU/Sites MySite ¥
http://your.old.server/%7EYOU ¥
http://your.new.server/%7EYOU

これを行った後古い公開先にコピーしてください。その際には古い公開先に置いてある内容は一旦削除するとよいでしょう。MySite フォルダーはオリジナルを他所にコピーしておいて、古い公開先に公開した後にもとに戻します。

このように iBlogMover は一般的に使用できます。更に Mac OS X 上で作成しましたが、使用しているものは perl で、特殊なモジュールは全く使っていません。perl があれば Linux など別なプラットフォームで使用できることでしょう。

最後にこの blog に iBlogMover を適用した場合どれくらいコンパクトになるかを書いておきます。
適用前: 1.9MB
適用後: 600KB

Posted: 17:49    | Comment | Trackback


以下、類似エントリです。