2004年07月10日 (土)

iBlogFreezer を自動的に実行する(その3)

iBlog のデータや設定、iblogPatcher の設定をバックアップするコマンド iBlogFreezer を自動的に実行する、つまりバックアップを忘れない、方法を幾つか紹介していきます。

今日はその第三回目。応用範囲が広い方法です。


前回は「起動項目」に iBlogFreezer を入れておくというお手軽方法を紹介しました。これには幾つか欠点がありました。おさらいしてみます。
  • 立ち上げっぱなしあるいはスリープですませる人にとっては、バックアップは滅多にされない。
  • バックアップ内容のボリュームによっては数分間バックアップに要するので、その間 iBlog を起動してはならない。
    起動すると、そして使い始めると、バックアップ対象が部分的に更新されてしまうので、一つのバックアップファイルの内容に整合性がなくなる可能性があります。iBlogFreezer も致命的ではありませんがエラー報告をするでしょう。iBlog を起動項目に加えている人は、外す必要が出てきます。
  • iBlogFreezer のためにターミナルが起動されるので煩わしいかもしれない。

特徴

今日紹介する方法は cron という UNIX 系の仕組みを利用する方法の一つで、起動項目と同じような働きをするものです。これには次のような特徴があります。
  • Mac OS X を起動する度にバックアップが行われる
    使用を終えるときに毎回 Mac をシャットダウンする人にとってはよいタイミングですが、立ち上げっぱなしあるいはスリープですませる人にとっては、バックアップは滅多にされないのでまずいタイミングでもあります。
  • ログインする前にバックアップが開始される
    セキュリティを考えれば自動ログインは全く薦められません。PowerBook や iBook のようなノート型はもちろんですが、デスクトップでも家族や同僚が容易にあなたのプライバシーを侵害できます。ですからそこそこ配慮すれば OS の起動とログインとの間にタイムラグがあるわけです。このタイムラグも利用してバックアップしようというわけです。
    バックアップ対象が多い人はログインするまでの時間でバックアップしきれないと思います。もし iBlog を起動項目に入れているのでしたら、残念ながら外しておいた方が無難です。
  • iBlogFreezer の為にターミナルが起動されることはない。
    つまり裏でこっそりやってくれます。一度設定したらもうほとんどバックアップのことを忘れていても大丈夫です。エラー出力を見たいときはコンソールを起動すれば見ることができます。

設定方法

これはちょっとドキドキです。というのはターミナルの中で使用されるテキストベースのエディタ vi (あるいは vim) を使用するからです。利用するエディタを Mac OS の TextEdit.app (テキストエディタ) に差し替える実験をしてみましたが、NG でした。Jaguar のときは行けたような気がするのですが、少なくとも Panther では駄目でした。TextEdit.app の仕様(i-node に関する仕様)を変えてほしいです。vi は慣れてしまえばとっても使いやすいエディタなんですけどね。で、その通りにやれば OK という書き方で説明します。

パス名の確認
ここでは iBlogFreezer のパス名を確認します。パス名の確認は 第一回目 でもやりました。ほぼ同じですが使用される場面が異なるので ¥ (バックスラッシュ) を消す操作は行わないでください。まとめると次の手順になります。
  1. ターミナルを起動する。
    ターミナルウィンドウがオープンされます。以後、このウィンドウに対して操作します。
  2. iBlogFreezer コマンドファイルがあるフォルダーをターミナルウィンドウにドラッグ&ドロップする。
    そうすると、そのフォルダーのフルパスがターミナルウィンドウに書き込まれます。
  3. ターミナルウィンドウに書き込まれたフォルダーのフルパスをコピーしておく。
    スティッキーズなどにコピーしておけばよいでしょう。
  4. 後ろに /iBlogFreezer を追加する。
    コピーしたフィルダーのフルパスの後ろにスペースなどを挟まず続けて "/iBlogFreezer" と書いておきます。( " " は不要です)
次のステップで混乱がないように、ターミナルは一旦終了させたほうがいいでしょう。
また、/Users/あなたのアカウント名 の部分を $HOME に置き換えてもよいです。
設定本番
いよいよ cron の設定です。
  1. ターミナルを起動して新しいターミナルウィンドウを開きます。
    起動すれば開くのでそれを使います。
  2. 次のようにタイプして改行してください。
    crontab -e
    `e' の前はハイフンです。
    そうすると vi が開いて定期的な処理を設定するファイルを編集する状態になります。怖じ気付かないでください。以下に書く通りにやれば OK です。
  3. とにかく次のようにタイプしてください。改行は ¥n と書いています。
    :$¥no
    「コロン - ドル - 改行 - オー」です
    既に何か書かれている場合に最適化してある操作です。何も書いてない場合は一行空いてしまいますが問題ありません。気持ち悪い人は次のようにしてください。
    a
    訳が分からなくなったら
    :q!¥n
    で脱出できます。この方法で脱出すればご破算になってくれます。落ち着いてもう一度やりましょう。
  4. 次のように設定内容を書きます。
    @reboot	iBlogFreezer のパス名
    iBlogFreezer のパス名 の部分は先ほど確認したパス名です。コピー&ペーストで流し込んでください。reboot の後ろはここでは TAB を書いていますが、スペースでも可です。TAB とスペースは複数混合して連続していても OK です。
  5. 更に次のようにタイプしてください。
    ESC:wq¥n
    ここで ESC はエスケープキーをタイプすることを意味しています。
これで cron の設定がされました。ターミナルウィンドウも次の入力を促す「プロンプト」が表示されているはずです。
設定確認
設定した内容を確認します。次のようにタイプして改行して下さい。
crontab -l
最後の二文字は「ハイフン - エル」です。
ここで次のように表示されれば OK です。
@reboot	iBlogFreezer のパス名
私の場合次のように表示されます。
@reboot $HOME/work/Free/iBlog/Freezer/iBlogFreezer
ホームまでの部分を環境変数 $HOME に置き換えています。

vi の操作の部分があまりにも普通の GUI エディタと異なるので不安になると思いますが、それさえ除けば前回の起動項目と同じようなタイミングで、しかも能率よくこっそりバックアップしてくれます。しかもこの cron を使うと他にも色々なバックアップタイミングを指定できるのです。次回は cron を使用した別なバックアップタイミングを紹介します。iBlogFreezer 以外のコマンドを指定することで他の自動処理に応用できるので、cron を身につけると rsync を利用して同期型のバックアップなどという技も使えるようになります。

Posted: 13:44    | Comment | Trackback


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