2007年12月13日木曜日

バックアップの仕組み(ちょっと踏み込んで)

バックアップは、いざと言う時にしか役に立たないわけだが、逆にいざと言う時に大変な威力を発揮する(笑)。くどいようだが、ホームサーバーではあっても、サーバーと言うからには何らかのバックアップ対応をすべきである。仕事関係のデータも含まれるならなおさらのこと。筆者の知り合いでも、PCがトラブって泣いた例は数多い。不幸にしてそういう事態に遭遇した場合でも、バックアップさえあれば(また、PCの代替機があれば)すぐにでも復旧、作業開始できるのである。

バックアップは、専用のソフトもあるわけだが、知り合いに勧められて、前日にも書いたようにDOSコマンドのxcopyベースのスクリプトを用意し、Windowsのタスクで深夜に走るよう設定した。xcopyというと、たった一つのコマンドであるが、なかなか奥が深い。いろいろ調べ、人にも聞き、かつ自身の試行錯誤の結果、以下のようなバッチファイルを作成した。

@XCOPY"C:\Documents and Settings\Itten\Application Data\Thunderbird\Profiles\haqd1nrc.default\Mail" "S:\IttenD1\Application Data\Thunderbird" /E /H /R /K /Y > C:\XCOPYD1.LOG(行が分かれるが、これで1行)

なじみのない方には分かりにくいと思うので読み飛ばしていただいて…(笑)。要は、筆者はメーラーにThunderbirdを使っているので、そのメールボックスをざっくりとバックアップし、ログをCドライブのファイルに残すのである。Outlook Expressも仕事関係で使っているが、基本的に同じなのでここには載せない。専門家ではない自分に一番難しかったのが/Eやら/Hやらのオプションで、これを何にするかによってxcopyの振舞が大きく変わる。言葉上の説明を何回読んでも意味がなかなか分からず、簡単なテスト環境を作って何度も試し、やっと落ち着いた。(ずっとやっていたわけではないが、数日かかったと思う。)

@XCOPY "C:\Documents and Settings\Itten\My Documents" "S:\IttenD1\My Documents" /D /E /H /R /K /Y >> C:\XCOPYD1.LOG(行が分かれるが、これで1行)

こちらはマイドキュメントのバックアップである。オプションの「/D」は、メーラーが基本的に同一ファイルを何度もバックアップするのに対し、通常のデータファイルの場合は毎日交互にバックアップを取ると、片方のディスクにあるがもう片方にはないファイルが発生したりなど、多少落差が出来てしまうため(アーカイブ属性というフラグの関係だが、説明がややこしいのでここでは触れない)、そのオプションでより新しいファイルは全てバックアップできるようにしたものである。こうしたコマンドの入ったバッチファイルを二つ用意して、タスク設定で一日おきに走らせると、二つのハードディスクに交互にデータがバックアップされる仕組みである。

1週間に一度のバックアップについては、基本的に同様だが、二つ難関があった。一つは、日付の付いたフォルダーを作成することで、DOSコマンドに慣れていないため、これはその筋に詳しい知り合いにお願いせざるを得なかった(笑)。また、iTuneデータを除くためにEXCLUDEというコマンドを使うが、別途のファイルに除きたいディレクトリーのパスをリストしなければならないなど、シロートにはかなり面倒くさかった。最初にも書いたが、簡単なコマンドのようでいて、なかなか奥が深いのである。

アホな話しだが、自分で書いたバッチが時間通りに複数走り、きちっと指定されたファイルを思った通りにバックアップしてくれるのを確認すると、実に気持ちよい。今はさすがに毎日はチェックしないが、当初は毎日ログを開けてみて、「フッフッフ」と不気味な(だったと思う)独り笑いを浮かべたものである。

ハードディスクはいつか壊れる…または、少なくともその可能性が高い。ホームサーバーでも、筆者のように個別の単体ディスクを複数使う方法に限る必要はなく(最低1台でもいいし、ミラーリングをやるディスクユニットや、ネットワークでつなげる安価なNASも最近はいろいろある)、簡便なバックアップソフトも各種あるので、何らかそうした仕組みを用意されることをお勧めしたい。

0 件のコメント: