SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

NAntによるバックアップの自動化

NAntの強力な自動バックアップツールとしての可能性

  • このエントリーをはてなブックマークに追加

NAntは、.NETのビルドスクリプティングツールです。主に、常時統合を実現するためによく使われますが用途はそればかりでありません。本稿では、筆者がNAntを用いて解決したある厄介なバックアップ問題を扱います。ここではカスタマイズ可能な混成的バックアップシステムを構築する方法を具体的に説明します。

  • このエントリーをはてなブックマークに追加

はじめに

 NAntは.NETのビルドスクリプティングツールです。JavaのビルドツールAntとよく似ているので、本稿の説明はAntにもそのまま当てはまるものと思われます。本稿は、NAntについてある程度知っていることを前提としています。

 純粋主義者は異を唱えるかもしれませんが、NAntは本質的には一般のビルドタスク(ソース制御操作、コンパイル、ファイルの移動や削除など)を中心に最適化された高級プログラミング言語だと言えます。その自動化能力ゆえ、常時統合を実現するためによく使われます。しかし、用途はそればかりでありません。

 本稿では、私がNAntを用いて解決したある厄介なバックアップ問題を扱います。ここではカスタマイズ可能な混成的バックアップシステムを構築する方法を具体的に説明します。本稿はNAntの基本的な知識を前提としています。このツールの詳細については、NAntサイトを参照してください。

 本稿で扱うバックアップ対象サーバーではWindows 2003、.NET、SQL、MySQL、MSDE、PHP、メールサーバーが実行されています。このサーバーは95件のクライアントをホストし、各クライアントのバックアップ要件は多岐に渡ります。バックアップについてまったく検討したことがないクライアントや自分でバックアップを管理したがるクライアントがある一方で、不慮のデータ消失を恐れて正式の信頼できるバックアッププロセスを要請するクライアントもあります。このように多様な要件を限られた予算で満たさなければならないため、このバックアップ問題を商用ツールで解決するのは現実的でありません。

 そこで、必要なバックアップタイプをIISメタデータのバックアップ、MySQLデータのバックアップ、MS SQLデータのバックアップ、各サイトファイルのバックアップに分類しました。このリストを見る限り、NAntで要件は満たせそうです。もう1つ、バックアップと共に何を行うかという問題があります。とりあえず考えられるオプションとしては、ファイルを圧縮してサーバーに保存する、ファイルを圧縮してネットワークドライブに保存する、ファイルを圧縮してメールで送信する、などがあります。いずれにせよ、クライアントが違えばソリューションも異なる、という点を押さえておくことが大切です。

 その他の設計目標は、1つはスケジュールバックアップが可能なことで、もう1つはサーバーに新規のクライアントを追加してもバックアッププロセスの設定作業に過剰な負荷がかからないようにすることです。

バックアップの課題(1):IISメタベースのバックアップ

 IISメタベースにはIISの構成情報が格納されています。大きな障害が生じても、これとサイトデータがあればWebサーバーを復元できます。IISスナップイン内でバックアップ対象のコンピュータを右クリックし、[すべてのタスク]メニューの[構成のバックアップまたは復元]を選択すると、IISメタベースがバックアップされます。幸い、この機能はスクリプティングからも利用できます。

 Windows 2000またはWindows XPでバックアップを作成するには、コマンドラインから次のコマンドを実行します。

cscript metaback.vbs

 Windows 2003では次のコマンドを実行します。

cscript iisback.vbs /backup /b <backup name>

 これらのコマンドで作成したIISバックアップを使えば、後でIIS構成を復元することができます。単純にコマンドを実行しているだけなので、そのままNAntスクリプトに含めることができます。NAntスクリプトは次のようになります。

 本稿のNAntスクリプトにおいて、スクリプト先頭の<!-- Parameters -->セクションに記載されている値は、スクリプトを呼び出すときにプロパティとして設定することを期待されている値です。
<?xml version="1.0"?>
<project name="IIS" default="CreateIISBackup">
<!-- Parameters
    backupName
    scriptDirectory
-->
<target name="CreateIISBackup" >
    <exec basedir="${ scriptDirectory }" program="cscript"
     commandline="iisback.vbs /backup /b ${backupName}" />
</target>
</project>

 このスクリプトを「IIS.build」という名前で保存します。このスクリプトを呼び出す前にプロパティを設定しておく必要があるため、コマンドラインから直接実行することはできません。このIISスクリプトを実行するスクリプトは次のようになります。

<?xml version="1.0"?>
<project name="BackupIIS" default="Backup">
<property name="backupName" value="IISBackup" />
<!-- For this script to work, this must be set to the location
 of the script (metaback.vbs or IISback.vbs) -->
<property name=" scriptDirectory" value="IISBackup" />
<target name="Backup" >
    <nant buildfile="IIS.build" inheritall="true" />
</target>
</project>

 このスクリプトを「BackupIIS.build」という名前で保存します。このバックアップを実行すると、IISBackupというIISバックアップが作成されます。このバックアップを実行するためには、両方のスクリプトを同じディレクトリに置き、「nant.exe」にシステムパスを通しておく必要があります。コマンドプロンプトを開き、スクリプトの置かれているディレクトリに移動して次のように入力し、[Enter]キーを押します。

nant -buildfile:BackupIIS.build

 バックアップが正常に作成されたことを確認するため、IISスナップインを開き、コンピュータノードを右クリックし、[すべてのタスク]メニューの[構成のバックアップまたは復元]を選択します。バックアップグリッド内にIISBackupというバックアップが表示されるはずです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
バックアップの課題(2):サイトファイルのバックアップ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Liam McLennan(Liam McLennan)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/395 2006/08/22 15:48

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング