JP4324976B2 - ファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラム - Google Patents

ファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラム Download PDF

Info

Publication number
JP4324976B2
JP4324976B2 JP2007213106A JP2007213106A JP4324976B2 JP 4324976 B2 JP4324976 B2 JP 4324976B2 JP 2007213106 A JP2007213106 A JP 2007213106A JP 2007213106 A JP2007213106 A JP 2007213106A JP 4324976 B2 JP4324976 B2 JP 4324976B2
Authority
JP
Japan
Prior art keywords
difference
file
information
group
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007213106A
Other languages
English (en)
Other versions
JP2009048377A (ja
Inventor
祐 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007213106A priority Critical patent/JP4324976B2/ja
Priority to US12/191,471 priority patent/US8051041B2/en
Publication of JP2009048377A publication Critical patent/JP2009048377A/ja
Application granted granted Critical
Publication of JP4324976B2 publication Critical patent/JP4324976B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ファイルの更新前後における差分情報によって、ファイルの更新状況を管理するファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムに関する。
コンピュータ装置では、ファイルをバックアップすることで、人為的な操作ミスや物理的な破壊、あるいはコンピュータウイルスの感染等によって失われたファイルを復旧することができる。ファイルのバックアップは、定期的、あるいは不定期的に行われる。又、直前のデータだけでなく、さらにその前のデータなども保存しておく世代管理を行うバックアップシステムもある。
ファイルの世代管理では、数世代前までのファイルの全てが保存されるため、世代管理数が増大するとバックアップ用の記憶容量が増大してしまう。このため、前回バックアップされたファイルデータと、今回バックアップされるファイルデータの差分を検出し、その差分を前回のファイルデータとして記録することで、バックアップ用の記憶容量を少なくする差分管理方法が普及している。
このような差分管理を行うデータバックアップ装置が特開2006−178645号公報に記載されている(特許文献1)。特許文献1に記載のデータバックアップ装置は、同じファイル名を持つ前回のバックアップデータのファイルと、今回のバックアップデータのファイルとを比較し、その相違点を差分圧縮し、差分圧縮したデータを旧世代バックアップデータとして格納する。又、今回バックアップするファイルは、最新世代バックアップデータとして格納される。これにより、バックアップする世代数が増大しても、バックアップに要する記憶容量の増大を抑制することができる。
しかし、特許文献1に記載の技術では、ファイルの差分管理の範囲が同一ファイル名となっており、ファイル名が異なれば別のファイルとして扱われる。このため、Linuxのシステムログなどのように、イベントをトリガーとしてファイル名が変更されるファイルの場合、純粋に追加されたデータだけを差分として取り出すことができない。
又、特許文献1に記載の技術では、ファイル名が同一の場合でもファイルの中身を比較することによってしか差分を取り出すことができない。このため、ファイルの内容を比較する場合には、前回の差分検出時(バックアップ時)のファイルデータをすべて保持している必要がある。
更に、格納しているデータが一定サイズを超えないように古いデータから順に削除するファイル管理方式の場合(例えば、データベースからタイムスタンプを持ったデータをタイムスタンプを利用してソートして取り出すようなファイル管理方式の場合)、ファイル上における同一データの位置が変わるため、単純に内容を比較すると既に取り出したデータも新たに追加されたデータとして検出してしまう問題がある。
特開2006−178645号公報
本発明の目的は、ファイル名の変更に関係なくファイルの差分管理を行うファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムを提供することにある。
本発明の他の目的は、ファイルの内容を比較することなく差分を検出するファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムを提供することにある。
本発明の更に他の目的は、各データがタイムスタンプを持ち古いデータから順次削除されるようなファイルに対して差分検出を行うファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムを提供することにある。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を括弧付きで用いて、[課題を解決するための手段]を説明する。この番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]の記載との対応関係を明らかにするために付加されたものであるが、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明によるファイル管理装置(10)は、グループ情報テーブル(21)と差分検出情報テーブル(22)とが格納される記憶装置(13)と、入力された差分管理対象ファイルの元のファイルである前回差分検出ファイルを検索し、両者の差分を検出する差分情報検出モジュール(103)と、差分を検出するために用いる差分検出情報(220)を差分検出情報テーブル(22)に記録する差分情報管理モジュール(102)とを具備する。差分情報検出モジュール(103)は、差分管理対象ファイルが所属するグループを、グループ情報テーブル(21)に登録されたグループ所属条件に応じて選定する。又、差分情報検出モジュール(103)は、グループと同一グループに対応付けられた第1差分検出情報(220)を差分検出情報テーブル(22)から抽出し、第1差分検出情報(220)と、差分管理対象ファイルのファイル情報(201)との比較結果に基づいて、第1差分検出情報(220)の検出に利用された前回差分検出ファイルと、差分管理対象ファイルとの差分を検出する。差分情報管理モジュール(102)は、差分が検出された場合、ファイル情報(201)とグループとを対応付けて新たな第2差分検出情報(220)として差分検出情報テーブル(22)に記録する。
このように、本発明によるファイル管理装置(10)は、グループに対応付けられた前回差分検出ファイルから差分管理対象ファイルと同一のファイルを検索することができる。このため、ファイル名が変更された場合でも、差分管理対象ファイルに対応する前回差分検出ファイルを検索することができる。
又、ファイル管理装置(10)は、世代管理タイプ、データベースタイプ(DBタイプ)、又は再帰タイプのいずれかのタイプのグループを、グループ情報テーブル(22)に登録する差分管理対象登録モジュールを更に具備することが好ましい。この場合、差分情報検出モジュール(103)は、差分管理対象ファイルが所属するグループのタイプに対応する差分検出処理を行う。これにより、世代管理タイプ、DBタイプ、又は再帰タイプに応じた差分検出を行うことができる。
更に、本発明によるファイル管理装置(10)は、前記差分管理対象ファイルが所属するグループが前記世代管理タイプに対応する場合、ファイル名の固定フィールド、ファイルのオブジェクト識別子、作成日時、チェックサムのいずれかを利用して差分管理対象ファイルの元ファイルである前回差分検出ファイルを検索し、差分を検出することが好ましい。この場合、ファイルの内容を比較することなく差分管理対象ファイルの元ファイルである前回差分検出ファイルを検索することができる。このため、ファイルデータの全てを記録することなく差分データを出力することができる。
又、差分情報検出モジュールステップ(103)は、差分管理対象ファイルが所属するグループがDBタイプ又は再帰タイプに対応する場合、差分管理対象ファイル内のタイムスタンプを参照して、差分検出対象ファイル内で最も古いデータを探索し、最も古いデータの位置から差分データの開始位置を探索する。そして、差分データの開始位置から前記差分検出対象ファイル内で最も新しいデータの位置までを前記差分データとして判定する。これにより、DBタイプや再帰タイプのファイルの差分データを位置を把握することができるため、ファイルデータの全てを記録することなく差分データを出力することができる。
本発明によるファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムによれば、ファイル名の変更に関係なくファイルの差分管理を行うことができる。
又、ファイルの内容を比較することなく差分を検出できる。
更に、各データがタイムスタンプを持ち古いデータから順次削除されるようなファイルに対しても差分検出できる。
以下、添付図面を参照して、本発明によるファイル差分管理装置10の実施例を説明する。本実施例において、ファイル差分管理装置10は、世代管理タイプ、データベースタイプ(DBタイプ)、再帰タイプの3つのタイプのファイルを差分管理対象ファイルとして管理する。
世代管理タイプ用のファイルとは、UNIX(登録商標)のシステムログのような管理をされるファイルを示し、あるイベント(例えばサーバの再起動、ファイルサイズ、時間)が発生した時に、書き込み中のファイルの世代が切り替わり、それまで書き込んでいたファイルは1世代前のファイルとして管理される。ファイルの世代が切り替わるときに現在まで書き込んでいたファイルのファイル名の変更がされる場合もある(例えばFreeBSD(Free Berkeley Software Distribution)のシステムログ)。又、管理する世代数が決まっている場合、世代数が上限を超えないように古い世代に関する情報が削除される場合もある。更に、管理する世代数は無限の場合や期間で規定される場合もある。
例えば、管理対象となる「世代管理タイプ」のファイル「host01:/var/adm/syslog/OLDsyslog.log」とファイル「host01:/var/adm/syslog/syslog.log」が、ファイル「host01:/var/adm/syslog/syslog.log」が現在書き込み中のファイルであるとする。サーバの再起動やサーバの切り換え等のイベントの発生に伴いファイルの変更が行われ、ファイル名が「host01:/var/adm/syslog/syslog.log」から「host01:/var/adm/syslog/OLDsyslog.log」に変更される。ここで、世代数が「1」に設定されている場合、ファイルの変更に応じて元のファイル「host01:/var/adm/syslog/OLDsyslog.log」は削除される。
DBタイプ用のファイルとは、Windows(登録商標)のイベントログをCSV形式で保存するときに出力されるようなファイルを示し、ファイルとして図示しないデータベースに格納されているデータがタイムスタンプ順にソートされて出力される。すなわち、DBタイプ用のファイル内のデータはタイムスタンプを持つ。例えば、データベースに格納されているデータが昇順にソートされて出力される場合、ファイルの始点が最も古いデータになり、ファイルの終端が最も新しいデータになる。又、データベースに格納されるデータは、ある条件(例えばデータベースに格納しているデータ数、データベースに格納しているデータサイズ、各データのタイムスタンプ)をもとに削除される場合もある。
再帰タイプ用のファイルとは、1つのファイルに対して再帰的にデータを出力するファイルを示す。ここで再帰的にデータを出力するとは、ファイルに対して順次データを出力し、ある条件(データ数、ファイルサイズ等)を満たしたときに、データの出力位置をファイルの始点に戻し、そこからまた順次データを出力する。尚、再帰タイプ用のファイル内のデータはタイムスタンプを持つことを条件とするが、データが時系列にソートされていない場合も対象とする。
1.構成
図1を参照して、本発明によるファイル差分管理装置10の構成を説明する。図1は、ファイル差分管理装置10の構成図である。本発明によるファイル差分管理装置10は、バス17を介して相互に接続されるCPU11と、RAM12と、記憶装置13と、入力装置14と、出力装置15と、I/Oインタフェース16を具備する。記憶装置13はハードディスクやメモリ等の記憶装置である。又、入力装置14は、キーボードやマウス等のユーザによって操作されることで、各種データをCPU11や記憶装置13に出力する。出力装置15は、モニタやプリンタに例示され、CPU11から出力される回路解析の結果をユーザが視認できる形式で出力する。I/Oインタフェース16は、図示しない他のコンピュータ装置やデータベースとのデータや信号の送受信を行う。
CPU11は、入力装置14からの入力に応答して、記憶装置13内の差分管理プログラム20を実行し、ファイルの差分管理を行う。この際、記憶装置13からの各種データやプログラムはRAM12に一時格納され、CPU11は、RAM12内のデータを用いて各種処理を実行する。
記憶装置13は、差分管理プログラム20、グループ情報テーブル21、差分検出情報テーブル22を格納している。又、記憶装置13は、I/Oインタフェースを介して入力された差分管理対象となるファイル(以下、差分管理対象ファイルと称す)が記録される記憶領域として差分管理対象格納部23を有している。
図2は、グループ情報テーブル21の構成の一例を示す図である。グループ情報テーブル21は、ユーザによって設定されたグループ情報210を格納するテーブルである。グループ情報210とは、差分管理対象ファイルの所属するグループを規定するための情報であり、グループ名によって識別される。グループ情報テーブル21には、グループ名毎に、グループ所属条件、ファイル名の固定フィールド、ファイルのタイプが対応付けられてグループ情報210として設定される。
グループ所属条件とは、差分管理対象ファイルがグループに所属するための条件である。グループ所属条件は、ファイルのパスを示す正規表現などを用いた条件式であることが好ましい。この場合、ファイルのパスがこの条件式に適合する差分管理対象ファイルが、このグループ所属条件に対応するグループに所属すると判定される。
ファイル名の固定フィールドは、グループに所属するファイルのファイル名の固定フィールドを規定する情報である。例えば、「preg_match_all(“/([A−Za−z0−9]+)(¥.log)([1−9])/”, $filename, $matches);」の第1及び第2パタンがファイル名の固定フィールドとして設定されている場合、ファイル名の固定フィールドが「*.log」(*.log)である差分管理対象ファイルが、このファイル名の固定フィールドに対応するグループに所属すると判定される(ただし、*は任意の英数字の組み合せで表現される)。
又、グループ情報210には、タイプとして「世代管理タイプ」、「DBタイプ」、「再帰タイプ」のいずれかが設定される。
図3は、差分検出情報テーブル22の構成の一例を示す図である。差分検出情報テーブル22は、差分管理装置10において既に差分管理されている差分管理対象ファイル(以下、前回差分検出ファイルと称す)に関する情報が差分検出情報220として記録される。ここで、前回差分検出ファイルは、差分管理装置に前回入力され、差分検出情報220が既に検出、記録された差分管理対象ファイルである。差分検出情報220は、前回差分検出ファイルに対応するグループ名、ファイルパス、オブジェクト識別子、作成日時、サイズ、チェックサム、差分情報230(差分始点検出用データ)を含む。又、差分検出情報テーブル22には、差分検出情報220を参照可能か否かを決める参照可否フラグが設定される。
グループ名は、グループ情報210に含まれるグループ名に対応し、管理されているファイルのグループを特定する情報である。ファイルパスは、前回差分検出ファイルを特定するファイル名である。オブジェクト識別子は、前回差分検出ファイルに設定されたオブジェクト識別子である。作成日時、サイズは、それぞれ前回差分検出ファイルの作成日時及びデータサイズである。チェックサムは、前回差分検出ファイルに設定されたチェックサムである。
差分管理対象格納部23は、差分管理対象ファイルや、差分管理対象ファイルに関する情報(ファイルパス、オブジェクト識別子、作成日時、サイズ、チェックサム)が記録される記憶領域である。差分管理対象格納部23には、定期的に、又は不定期的にI/Oインタフェース17を介して入力された複数の差分管理対象ファイル(以下、差分管理対象ファイル群200と称す)が記録される。
CPU11は、差分管理プログラム20を実行することで、図4に示す差分管理モジュール100の機能を実現する。差分管理モジュール100は、差分管理対象モジュール101、差分情報管理モジュール102、差分情報検出モジュール103、差分情報出力モジュール104を備える。これらのモジュールはそれぞれ概略つぎのような機能を有する。
差分管理対象登録モジュール101は、入力装置14から入力された情報に基づき差分管理対象ファイル群200をグループ分けするために必要なグループ情報210を作成する機能を有する。ユーザは、入力装置14を用いてグループ情報210に含める情報(グループ所属条件、タイプ、ファイル名の固定フィールドの設定)を差分管理対象登録モジュール101に出力する。差分管理対象登録モジュール101は、入力された情報からグループ情報210を作成し、差分情報管理モジュール102に渡す機能を有する。
差分情報管理モジュール102は、差分管理対象登録モジュール101から渡されるグループ情報210を差分検出情報テーブル21に格納する機能と、差分情報検出モジュール103にグループ情報210や差分検出情報220を渡す機能を有する。又、差分情報管理モジュール102は、差分情報検出モジュール103で生成された新たな差分検出情報220を受け取り、差分検出情報テーブル22に格納する機能を有する。
差分情報検出モジュール103は、差分情報管理モジュール102からグループ情報210を取得し、差分管理対象ファイル群200内の差分管理対象ファイルをグループ分けする機能を有する。又、差分情報検出モジュール103は、差分情報管理モジュール102から差分検出情報220を取得し、差分管理対象格納部23から差分対象ファイル群200と、差分管理対象ファイル毎のファイル情報201を取得する機能を有する。差分情報検出モジュール103は、差分検出情報220とファイル情報201とから次回の差分検出のために必要な新たな差分検出情報220を生成する。ファイル情報201には、差分管理対象ファイルがもともと置かれていたマシン(ファイルへの書き込みが行われるマシン)上でのファイルパス、作成日時、オブジェクト識別子(Windows(登録商標)の場合はBirth Object ID、UNIX(登録商標)やLinuxの場合はi−node)、ファイルサイズなどが含まれる。尚、ファイル情報201はオブジェクト識別子を含まなくても良い。差分情報検出モジュール103は、取得した差分管理対象ファイル群200と差分検出情報220とファイル情報201とを用いて、差分データ300の位置を取得し、差分情報230として差分情報出力モジュール104に出力する機能を有する。ここで、差分データ300とは、差分管理対象ファイルの全データのうち、前回差分管理対象ファイルから新たに追加されたデータである。又、差分情報230は、差分管理対象ファイルにおける差分データ300の位置(始点及び終点)を示すデータである。尚、差分管理対象ファイルのデータの終点が分かれば、差分情報230は、差分データ300の終点を示す情報を含まなくても良い。
差分情報出力モジュール104は、差分情報検出モジュール103から取得した差分情報230に基づいて、差分管理対象ファイルから差分データを読み込み出力装置15に出力する機能を有する。
2.動作
図5から図10を参照して、本発明によるファイル差分管理装置10の実施例における動作(ファイル差分管理方法)の詳細を説明する。
(グループ情報設定)
本発明によるファイル差分管理装置10ではファイル管理を行う前に、ユーザは、予めグループ情報210をグループ情報テーブル21に設定する。図5は、グループ情報210の設定動作を示すフロー図である。図2及び図5を参照して、本発明に係るグループ情報210の設定動作の詳細を説明する。
差分管理対象登録モジュール101は、入力装置14からの指定情報に応じて、差分管理対象ファイル群200をグループ分けするためグループ名を作成する(ステップS101)。ここでは、グループ名として「host01 syslog.log」、「host02 Apache access_log」、「host03 event.csv」の3つのグループが設定される。以下、グループ名「host01 syslog.log」で特定されるグループをグループA、グループ名「host02 Apache access_log」で特定されるグループをグループB、グループ名「host03 event.csv」で特定されるグループをグループCと称して説明する。
次に、差分管理対象登録モジュール101は、入力装置14からの指定情報に応じて、各グループにグループ所属条件を設定する。ここでは、グループAに「host01:¥/var¥/adm¥/syslog¥/(OLD|)syslog¥.log」という正規表現が設定され、グループBに「host02:C:¥¥Program Files¥¥Apache Group¥¥Apache¥¥logs¥¥access_log(¥.[1−9]{0,1})」という正規表現が設定され、グループCにhost03:C:¥¥Documents and Settings¥¥user1¥¥My Documents¥¥event¥.csv」という正規表現が設定される。
この場合、グループAのグループ所属条件に適合するファイルパスは、「host01:/var/adm/syslog/OLDsyslog.log」と「host01:/var/adm/syslog/syslog.log」がある。逆に、グループAに「host01:/var/adm/syslog/OLDsyslog.log」と「host01:/var/adm/syslog/syslog.log」を所属させたい場合、ユーザは、これらのファイルパスに適合する「host01:¥/var¥/adm¥/syslog¥/(OLD|)syslog¥.log」という正規表現をグループ所属条件として設定しても良い。
同様に、グループBのグループ所属条件として、host02のCドライブのProgram Files¥Apache Group¥Apache¥logs¥access_logやProgram Files¥Apache Group¥Apache¥logs¥access_log.1、Program Files¥Apache Group¥Apache¥logs¥access_log.2などを所属させるために「host02:C:¥¥Program Files¥¥Apache Group¥¥Apache¥¥logs¥¥access_log(¥.[1−9]{0,1})」という正規表現が設定される。
グループCのグループ所属条件として、host03のCドライブのDocuments and Settings¥user1¥My Documents¥event.csvを所属させるために「host03:C:¥¥Documents and Settings¥¥user1¥¥My Documents¥¥event¥.csv」という正規表現が設定される。
次に、差分管理対象登録モジュール101は、入力装置14からの指定情報に応じて、グループタイプを各グループに設定する(ステップS103)。ここでは、グループAとグループCが世代管理タイプとして設定され、グループBがDBタイプとして設定される。
次に、差分管理対象登録モジュール101は、入力装置14からの指定情報に応じて、各グループに所属する差分管理対象ファイルのファイル名の固定フィールドを設定する(ステップS104)。ここでは、グループAにおけるファイル名の固定フィールドとして、「preg_match_all(“/(OLD|)(syslog¥.log)/”, $filename, $matches);」「preg_match_all(“/(access_log)(¥.[1−9]{0,1}|)/”, $filename, $matches);」の第2パタンが設定され、グループBにおけるファイル名の固定フィールドとして、「preg_match_all(“/(access_log)(¥.[1−9]{0,1}|)/”, $filename, $matches);」の第1パタンが設定され、グループCにおけるファイル名の固定フィールドとして、「preg_match_all(“/(event¥.csv)/”, $filename, $matches);」の第1パタンが設定される。
作成されたグループA、B、Cに関するグループ情報210は、差分情報管理モジュール102によってグループ情報テーブル21に記録される(ステップS105)。尚、ステップS102〜S104の設定順は、上述の順番とは限らない。
以上のように、グループ情報テーブル21には、図2に示すようなグループ情報210が登録される。グループ情報210が登録されると差分情報検出モジュール103は、差分管理対象格納部23から差分管理対象ファイル群200を取得し、差分検出を行うことができる。
(差分検出)
図6は、本発明による差分検出処理の動作を示すフロー図である。図6を参照して、ファイル差分管理装置10における差分検出処理の概要を説明する。
差分情報検出モジュール103は、差分検出を指示されると差分管理対象格納部23から差分管理対象ファイル群200を取得する(ステップS201)。この際、差分情報検出モジュール103は、差分管理対象ファイル群200とともに、差分管理対象ファイル毎のファイル情報201も取得する。尚、差分検出の指示は、定期的に、あるいは何らかのイベント(サーバの再起動、ファイルサイズ、時間)に応じて行われる。
次に、差分情報検出モジュール103は、差分情報管理モジュール102から有効なグループ情報210を全て取得する(ステップS202)。ここでは、差分情報検出モジュール103は、図2に示されるグループ情報テーブル21からグループA、B、Cに関するグループ情報210を取得する。
次に、差分情報検出モジュール103は、差分情報管理モジュール102から差分検出情報220を取得する(ステップS203)。ここでは、差分情報検出モジュール103差分検出情報テーブル22に記録され、参照可能に設定された全ての差分検出情報220を取得する。
次に、差分情報検出モジュール103は、ステップS201で取得したファイル情報201とステップS202で取得したグループ情報210とに基づいて、差分管理対象ファイル群200をグループ分けする(ステップS204)。ここでは、ファイル情報201に含まれるファイルパスが、グループ情報210に含まれるグループ所属条件に適合する場合、当該ファイル情報201に対応する差分管理対象ファイルが、当該グループ所属条件に対応するグループに所属していると判定される。
差分管理対象ファイルをグループに対応付けることで、ステップS205の差分検出処理で用いる差分検出情報220及びファイルタイプ(世代管理用タイプ、DBタイプ、再帰タイプのいずれか)を特定することができる。
差分管理対象ファイル群200の全てのファイルをグループ毎に分類すると、差分情報検出モジュール103は、差分対象ファイル群200のうち、前回差分対象ファイルと差分のある差分対象ファイルから新たな差分検出情報220を取得し、グループに対応付けて差分検出情報テーブル22に記録する(ステップS205)。この際、同じグループの古い差分検出情報220(前回差分検出ファイルに対応する差分検出情報220)は削除され、今回格納された新たな差分検出情報は参照可能に設定される。
次に、図6から図9を参照して、本発明によるファイル差分管理装置10における差分検出処理の詳細を説明する。
先ず、差分検出情報テーブル22に差分検出情報220が記録されていない初期状態において行われる世代管理用の差分管理対象ファイルに対する差分検出処理の詳細を説明する。
差分情報検出モジュール103は、差分検出処理の指示に応答して、差分管理対象ファイル群200と、対応するファイル情報201を取得する(ステップS201)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル群200として1つの差分管理対象ファイル(ファイル情報201:ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「1024バイト」)を取得する。
次に、差分情報検出モジュール103は、グループ情報テーブル21に登録されているグループA、B、Cのグループ情報210を取得する(ステップS202)。
初期状態では差分検出情報テーブル22に、差分検出情報220が記録されていないため、差分情報検出モジュール103は、「差分検出情報なし」という差分検出情報220を取得する(ステップS203)。
差分情報検出モジュール103は、取得した差分管理対象ファイルをグループ情報210に基づいてグループに割り当てる(ステップS204)。ここでは、取得した差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」は、グループA(グループ名:「host01 syslog.log」)のグループ所属条件「host01:¥/var¥/adm¥/syslog¥/(OLD|)syslog¥.log」に適合するため、グループAに対応付けられる。
差分情報検出モジュール103は、取得した差分管理対象ファイル群200内の全てのファイルの差分検出処理を行い、差分検出情報テーブル22を更新する(ステップS205)。
図7は、ステップS205における差分検出処理の動作を示すフロー図である。図7を参照して、ステップS205における差分検出処理の詳細を説明する。
先ず、差分情報検出モジュール103は、グループを1つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する(ステップS301)。ここでは、グループAが選択される。差分情報検出モジュール103は、グループを選択すると、そのグループのタイプを確認する(ステップS302)。選択したグループが「世代管理タイプ」である場合、ステップS303の処理に移行し(ステップS302Yes)、「DBタイプ」又は「再帰タイプ」である場合、ステップS309の処理に移行する(ステップS302No)。
グループAは世代管理タイプであるため、差分情報検出モジュール103は、グループAに所属する差分管理対象ファイルを選択し、世代管理タイプ用の差分検出処理を行う(ステップS303)。ここでは差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」が選択される。ステップS303における世代管理タイプ用の差分検出処理の詳細を図8に示す。
図8を参照して、差分情報検出モジュール103は、ステップS301において選択したグループに所属する前回差分検出ファイルがあるかを確認する(ステップS401)。ここで、グループに前回差分検出ファイルがある場合、すなわち、グループに対応付けられた差分検出情報220が既に記録されている場合、ステップS403の処理に移行する(ステップS401Yes)。一方、グループに所属する前回差分検出ファイルがない場合、すなわち、グループに対応付けられた差分検出情報220が未登録の場合、差分情報検出モジュール103は、ステップS303で選択された差分管理対象ファイルのデータの全てを差分データ300として判定する(ステップS402)。この際、差分情報検出モジュール103は、差分管理対象ファイルにおけるデータの始点及び終点を差分情報230として取得する。
ここでは、グループAに対する差分検出はこれが最初であるため、前回差分検出ファイルがないことが確認される。この場合、ステップS402の処理において、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」のデータは、全て新たなデータ、すなわち全て差分データ300であると判定される。又、差分情報検出モジュール103は、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」のデータの始点及び終端を差分データ300の始点及び終点として指定する差分情報230を取得する。
以上のように、ステップS303における差分検出処理が終了すると、図7に示すステップS304における処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルとともに取得したファイル情報201から世代管理タイプ用の差分検出情報220を取得する(ステップS304)。詳細には、差分情報検出モジュール103は、ファイル情報201と、差分データ300の読み取り位置を示す差分情報230と、差分管理対象ファイルが所属するグループとを対応付けて新たな差分検出情報220として取得する。ここでは、差分情報検出モジュール103は、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」のファイル情報201(ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「1024バイト」)と、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」と、グループAとを対応付けて新たな差分検出情報220として取得する。ただし、ファイルパスは、差分検出情報220として必須ではない。
差分情報検出モジュール103は、新たに取得した差分検出情報220を、差分情報管理モジュール102を介して、差分検出情報テーブル22に記録する(ステップS305)。尚、このタイミングでは記録した差分検出情報テーブル22の差分検出情報は参照できない。このため、差分情報管理モジュール102は、新たに記録された差分検出情報220を参照可能に設定する(ステップS306)。
図9に、ステップS306における処理の動作の詳細を示す。図9を参照して、差分情報検出モジュール103は、取得した差分情報230を差分情報出力モジュール104に渡す(ステップS501)。差分情報出力モジュール104は、差分情報230に対応する差分管理対象ファイルから差分情報230の示す差分の始点から終点までのデータを順に読み込み、差分データ300として出力する(ステップS502)。ここではファイル「host01:/var/adm/syslog/syslog.log」のデータの全てが読み込まれ、出力装置15に出力される。この際、差分情報管理モジュール102は、今回処置したグループに対応する古い差分検出情報220(前回差分検出ファイルの差分検出情報220)を削除し、今回、新たに格納した差分検出情報220を参照可能に設定する。ここでは削除する差分検出情報は無いため、今回格納した新たな差分検出情報220(ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「1024バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)が参照可能に設定される。
ステップS303〜S306の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる(ステップS307)。グループ内の全ての差分管理対象ファイルに対しステップS303〜S306の処理が行われると、ステップS308に移行する(ステップS307Yes)。ステップS308では、差分管理対象ファイル群200内の全てのファイルに対し、差分検出処理が実行されたかどうかが確認される。ここで、選択されていない差分管理対象ファイルがある場合、ステップS301に移行して、当該ファイルが所属するグループを選択し、差分検出処理を実行する。このように、ステップS301以降に続く差分検出処理は、取得した差分管理対象ファイル群200が所属する全てのグループに対して行われる。ここでは、取得した差分管理対象ファイルがグループAのみに所属するため、グループAに所属する差分管理対象ファイル群200に対してのみ差分検出処理が行われる。
以上のように、初期状態において、世代管理タイプの差分管理対象ファイルが入力された場合、新たな差分検出情報220(グループ名=「host01 syslog.log」、ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「1024バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)が記録される。
次に、差分検出情報テーブル22に上述の差分検出情報220が記録されている状態において、差分情報検出モジュール103に対し新たな差分情報検出処理が指示された場合について説明する。
差分情報検出モジュール103は、差分検出処理の指示に応答して差分管理対象ファイル群200と、対応するファイル情報201を取得する(ステップS201)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル群200として2つの差分管理対象ファイル(ファイル情報201:ファイルパス=「host01:/var/adm/syslog/OLDsyslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「2048バイト」)と、差分管理対象ファイル(ファイル情報201:ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「7176225」、ファイルサイズ=「512バイト」)を取得する。
次に、差分情報検出モジュール103は、グループ情報テーブル21に登録されているグループA、B、Cのグループ情報210を取得する(ステップS202)。
差分情報管理モジュール102は、差分検出情報テーブル22を参照して、既に記録されている差分検出情報220(グループ名=「host01 syslog.log」、ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「1024バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)を差分情報検出モジュール103に渡す(ステップS203)。
差分情報検出モジュール103は、取得した差分管理対象ファイル群200をグループ情報210に基づいてグループ分けする(ステップS204)。ここでは、取得した差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」及びファイル「host01:/var/adm/syslog/OLDsyslog.log」は、両者ともグループA(グループ名:「host01 syslog.log」)のグループ所属条件「host01:¥/var¥/adm¥/syslog¥/(OLD|)syslog¥.log」に適合するため、グループAに対応付けられる。
差分情報検出モジュール103は、取得した差分管理対象ファイル群200内の全てのファイルの差分検出処理を行い、差分検出情報テーブル22を更新する(ステップS205)。図7を参照して、ステップS205における差分検出処理の詳細を説明する。
先ず、差分情報検出モジュール103は、グループを1つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する(ステップS301)。ここでは、グループAが選択される。差分情報検出モジュール103は、グループを選択すると、そのグループのタイプを確認する(ステップS302)。選択したグループが「世代管理タイプ」である場合、ステップS303の処理に移行し(ステップS302Yes)、「DBタイプ」又は「再帰タイプ」である場合、ステップS309の処理に移行する(ステップS302No)。
グループAは世代管理タイプであるため、差分情報検出モジュール103は、グループAに所属する差分管理対象ファイルを選択し、世代管理タイプ用の差分検出処理を行う(ステップS303)。ここでは最初に差分管理対象ファイル「host01:/var/adm/syslog/OLDsyslog.log」が選択される。
図8を参照して、ステップS303における差分検出処理の詳細を説明する。差分情報検出モジュール103は、ステップS301において選択したグループに所属する前回差分検出ファイルがあるかを確認する(ステップS401)。ここではグループAの前回差分検出ファイルに対応する差分検出情報220(ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「1024バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)があることが確認される。このため、差分情報検出モジュール103は、ステップS403の処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルのファイル情報201にオブジェクト識別子があるかを確認する(ステップS403)。ここで、ファイル情報201にオブジェクト識別子がない場合、ステップS408の処理に移行する(ステップS403No)。一方、ファイル情報201にオブジェクト識別子がある場合、差分情報検出モジュール103は、そのオブジェクト識別子と一致するオブジェクト識別子を有する差分検出情報220が記録されているかを確認する(ステップS403、Yes、S404)。ここでは、差分管理対象ファイル「host01:/var/adm/syslog/OLDsyslog.log」のファイル情報201にオブジェクト識別子があることが確認される。又、ファイル情報201に含まれるオブジェクト識別子=「7176224」と差分検出情報220(前回差分検出ファイル「host01:/var/adm/syslog/syslog.log」に対応)に含まれるオブジェクト識別子=「7176224」が一致することが確認される。
ステップS404において、ファイル情報201内のオブジェクト識別子と一致する差分検出情報220がある場合、差分情報検出モジュール405は、オブジェクト識別子が一致する差分検出情報220の中にファイル情報201に含まれる作成日時に一致する作成日時を有する差分検出情報220があるかを確認する(ステップS405)。ここではファイル情報201に含まれる作成日時=「2007年1月1日 13:01:01」と差分検出情報220(前回差分検出ファイル「host01:/var/adm/syslog/syslog.log」に対応)の作成日時=「2007年1月1日 13:01:01」が一致することが確認される。
ここで、ファイル情報201がファイルの作成日時を持たない場合、ステップS405における作成日時の比較処理は行われない。この場合、次のような比較処理が行われても良い。
差分情報検出モジュール103は、ファイル情報201と差分検出情報220のそれぞれに含まれるチェックサムを比較し、チェックサムが一致する場合はその内容の比較を行う。ここで、チェックサムの比較は、ファイル全体である必要はなく、最大でも前回差分検出ファイルのファイルサイズまでのチェックサムでよい。
差分管理対象ファイル群200内の差分管理対象ファイルをオープンもしくはハードリンクしておいた場合、ファイルが削除されてすぐに別のファイルが作成されても、同じi−nodeがそのファイルに使用されることはない。このような場合、差分情報検出モジュール103は、オブジェクト識別子(i−node)のみを比較することで同一ファイルか否かの判断をすることができる。すなわち、このような場合、ステップS405の作成日時比較処理は省略できる。差分管理対象ファイルをオープンもしくはハードリンクしておく必要がある期間は、差分管理モジュール100が、当該ファイルが削除されたことを検出するまでの間である。換言すると、差分管理対象ファイルをオープンもしくはハードリンクしておく必要がある期間は、そのファイルに対しての最後の差分検出が実行される直前からそのファイルが削除された後に差分検出が実行されるまでの間である。ただし、この期間がこれより長くなっても問題はない。
ファイルのデータ更新が0世代目のファイルに対してのみ差分管理が行われるグループにおいて、0世代目以外の差分管理対象ファイルと0世代目以外の前回差分検出ファイル同士が比較される場合、ファイルデータの更新日時が、比較対象として使用されることが好ましい。又、0世代目の差分管理対象ファイルと0世代目の前回差分検出ファイル同士が比較される場合、チェックサムが比較対象として使用されるか、0世代目の差分管理対象ファイルと0世代目の前回差分検出ファイルが同じオブジェクト識別子(i−node)にならないように、ファイルをオープンもしくはハードリンクしておき、オブジェクト識別子(i−node)のみの比較が行われることが好ましい。ただし、0世代目か否かの判定にはファイル名を利用する。
次に、ステップS404、S405における処理の結果、ファイル情報201内のオブジェクト識別子と作成日時とが一致する差分検出情報220がある場合、差分情報検出モジュール103は、ファイル情報201内のファイルのデータサイズと、当該差分検出情報220に含まれるデータサイズとを比較する(ステップS406)。これにより、オブジェクト識別子と作成日時が一致する差分管理対象ファイルと前回差分検出ファイルとのファイルサイズを比較することができる。ステップS406の処理において、差分管理対象ファイルのサイズが前回差分検出ファイルのサイズ以下である場合、差分なしと判定される(ステップS407)。この場合、差分検出情報220は更新されない。一方、ステップS406の処理において差分管理対象ファイルのサイズが前回差分検出ファイルのサイズより大きい場合、そのサイズ差分のデータが差分データ300として判定される。この場合、差分情報検出モジュール103は、前回差分検出ファイルの終端の次のデータを始点として指定し、差分管理対象ファイルの終端をデータの終端として指定する差分情報230を取得する。ここでは、差分管理対象ファイル「host01:/var/adm/syslog/OLDsyslog.log」のサイズ=「2048バイト」と前回差分検出ファイル「host01:/var/adm/syslog/syslog.log」のサイズ=「1024バイト」が比較され、差分管理対象ファイル「host01:/var/adm/syslog/OLDsyslog.log」のサイズの方が「1024バイト」大きいため、差分管理対象ファイルの始点から1024バイト進んだ位置からファイルの終端までが差分データ300であると判断される。又、差分情報検出モジュール103は、差分管理対象ファイル「host01:/var/adm/syslog/OLDsyslog.log」の1025バイト目を差分データ300の始点、その終端を差分データ300の終端として指定する差分情報230を取得する。
一方、ステップS404において、ファイル情報201内のオブジェクト識別子と一致する差分検出情報220がない場合、あるいは、ステップS405において、ファイル情報201内の作成日時と一致する差分検出情報220がない場合、選択された差分管理対象ファイルのデータは、全て新たなデータ、すなわち全て差分データ300であると判定される(ステップS402)。この際、差分情報検出モジュール103は、差分管理対象ファイルのデータの始点及び終点を差分データ300の始点及び終点として指定する差分情報230を取得する。
以上のように、ステップS303における差分検出処理が終了すると、図7に示すステップS304における処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルとともに取得したファイル情報201から世代管理タイプ用の差分検出情報220を取得する(ステップS304)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル「host01:/var/adm/syslog/OLDsyslog.log」のファイル情報201(ファイルパス=「host01:/var/adm/syslog/OLDsyslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「2048バイト」)と、差分情報230=「始点:ファイルの先頭から1025バイト目、終点:ファイルの終端」と、グループAとを対応付けて新たな差分検出情報220として取得する。ただし、ファイルパスは、差分検出情報220として必須ではない。
差分情報検出モジュール103は、取得した新たな差分検出情報220を差分情報管理モジュール102を介して、差分検出情報テーブル22に記録する(ステップS305)。ここでは、新たな差分検出情報220として(ファイル名=「host01 syslog.log」、ファイルパス=「host01:/var/adm/syslog/OLDsyslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「2048バイト」、差分情報230=始点:ファイルの先頭から1025バイト目、終点:ファイルの終端)が記録される。尚、このタイミングでは記録した差分検出情報テーブル22の差分検出情報は参照できない。このため、差分情報管理モジュール102は、新たに記録された差分検出情報220を参照可能に設定する(ステップS306)。
図9を参照して、差分情報検出モジュール103は、取得した差分情報230を差分情報出力モジュール104に渡す(ステップS501)。差分情報出力モジュール104は、差分情報230に対応する差分管理対象ファイルから差分情報230の示す差分の始点から終点までのデータを順に読み込み、差分データ300として出力する(ステップS502)。ここでは、差分情報230を参照して差分管理対象ファイル「host01:/var/adm/syslog/OLDsyslog.log」の1025ビット目から終端(2048ビット目)までのデータが順に読み込まれ出力装置15に出力される。この際、差分情報管理モジュール102は、今回処置したグループに対応する古い差分検出情報220(前回差分検出ファイルの差分検出情報220)を削除し、今回、新たに格納した差分検出情報220を参照可能に設定する。ここでは、今回格納した新たな差分検出情報220(ファイル名=「host01 syslog.log」、ファイルパス=「host01:/var/adm/syslog/OLDsyslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「2048バイト」、差分情報230=「始点:ファイルの先頭から1025バイト目、終点:ファイルの終端」)が参照可能に設定される。
差分管理対象ファイル群200内に、グループAに所属し、差分検出されていない差分管理対象ファイルが有る場合、ステップS303に移行する(ステップS307No)。ステップS303では、次の差分管理対象ファイルが選択され、世代管理タイプ用の差分検出処理が行われる。ここでは、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」(ファイル情報201:ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「7176225」、ファイルサイズ=「512バイト」)が選択される。
図8を参照して、ステップS303における差分検出処理の詳細を説明する。差分情報検出モジュール103は、ステップS301において選択したグループに所属する前回差分検出ファイルがあるかを確認する(ステップS401)。ここでは、グループAの前回差分検出ファイルに対応する差分検出情報220(ファイルパス=「host01:/var/adm/syslog/OLDsyslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「2048バイト」、差分情報230=「始点:ファイルの先頭から1025バイト目、終点:ファイルの終端」)があることが確認される。このため、差分情報検出モジュール103は、ステップS403の処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルのファイル情報201にオブジェクト識別子があるかを確認する(ステップS403)。ここでは、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」のファイル情報201にオブジェクト識別子があることが確認される(ステップS403Yes)。次に、ファイル情報201に含まれるオブジェクト識別子=「7176225」と一致する差分検出情報220が差分検出情報テーブル22にないことが確認される(ステップS404No)。
ファイル情報201に含まれるオブジェクト識別子に一致する差分検出情報220が差分検出情報テーブル22にないため、差分情報検出モジュール103は、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」の全てが差分データ300であると判定する(ステップS402)。又、差分情報検出モジュール103は、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」のデータの始点及び終端を差分データ300の始点及び終点として指定する差分情報230を取得する。
以上のように、ステップS303における差分検出処理が終了すると、図7に示すステップS304における処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルとともに取得したファイル情報201から世代管理タイプ用の差分検出情報220を取得する(ステップS304)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」のファイル情報201(ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「7176225」、ファイルサイズ=「512バイト」)と、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」と、グループAを対応付けて新たな差分検出情報220として取得する。ただし、ファイルパスは、差分検出情報220として必須ではない。
差分情報検出モジュール103は、新たに取得した差分検出情報220を差分情報管理モジュール102を介して、差分検出情報テーブル22に記録する(ステップS305)。差分情報検出モジュール103は、取得した差分情報230を差分情報出力モジュール104に渡す。差分情報出力モジュール104は、差分情報230に対応する差分管理対象ファイルから差分情報230の示す差分の始点から終点までのデータを順に読み込み、差分データ300として出力する。ここではファイル「host01:/var/adm/syslog/syslog.log」のデータの全てが読み込まれ、出力装置15に出力される。この際、差分情報管理モジュール102は、今回、新たに格納した差分検出情報220(ファイルパス=「host01:/var/adm/syslog/syslog.log」のファイル情報201(ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「7176225」、ファイルサイズ=「512バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)が参照可能に設定される。
ステップS303〜S306の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる(ステップS307)。グループ内の全ての差分管理対象ファイルに対しステップS303〜S306の処理が行われると、ステップS308に移行する(ステップS307Yes)。ステップS308では、差分管理対象ファイル群200内の全てのファイルに対し、差分検出処理が実行されたかが確認される。ここで、選択されていない差分管理対象ファイルがある場合、ステップS301に移行して、当該ファイルが所属するグループを選択し、差分検出処理を実行する。このように、ステップS301以降に続く差分検出処理は、取得した差分管理対象ファイル群200が所属する全てのグループに対して行われる。ここでは、取得した差分管理対象ファイルがグループAのみに所属するため、グループAに所属する差分管理対象ファイル群200に対してのみ差分検出処理が行われる。
以上のように、グループAに対応する差分検出情報220として前回記録された差分検出情報220(ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「1024バイト」、差分情報230=始点:ファイルの先頭、終点:ファイルの終端)が削除され、差分検出情報220(ファイルパス=「host01:/var/adm/syslog/OLDsyslog.log」、作成日時=「2007年1月1日 13:01:01」、オブジェクト識別子=「7176224」、ファイルサイズ=「2048バイト」、差分情報230=始点:ファイルの先頭から1025バイト目、終点:ファイルの終端)と、差分検出情報220(ファイルパス=「host01:/var/adm/syslog/syslog.log」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「7176225」、ファイルサイズ=「512バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)がグループAに対応する新たな差分検出情報220として記録される。
以上のように本発明では、入力された差分管理対象ファイルの元のファイル(変更前又は変更なし)が、前回差分検出ファイルであるか否かの判定(差分管理対象ファイルと前回差分検出ファイルが同一ファイルであるか否かの判定)をファイルパス、オブジェクト識別子、作成日時などの組み合わせで行う。このため、ファイル名が変更されても同一ファイルか否かの判定をすることができる。
又、本発明では、さらに、同一ファイルと判定したファイル同士のファイルサイズを比較して更新前のファイルと更新後のファイルの差分が検出される。これにより、ファイルへの出力が追記されたファイルに対し、ファイルの中身を比較することなく差分を検出できる。
次に、オブジェクト識別子のない差分管理対象ファイルに対する差分検出処理の詳細を説明する。ここでは、差分検出情報220(グループ名=host02 Apache access_log、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」)と、差分検出情報220(グループ名=host02 Apache access_log、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「1024バイト」)が差分検出情報テーブル22に記録されているものとする。
差分情報検出モジュール103は、差分検出処理の指示に応答して差分管理対象ファイル群200と、対応するファイル情報201を取得する(ステップS201)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル群200として2つの差分管理対象ファイル(ファイル情報201:ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」)と、差分管理対象ファイル(ファイル情報201:ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「2048バイト」)を取得する。
差分情報検出モジュール103は、グループ情報テーブル21に登録されているグループA、B、Cのグループ情報210を取得する(ステップS202)。
差分情報管理モジュール102は、差分検出情報テーブル22を参照して、既に記録されている差分検出情報220(グループ名=host02 Apache access_log、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=始点:ファイルの先頭、終点:ファイルの終端)と、差分検出情報220(グループ名=host02 Apache access_log、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「1024バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)を差分情報検出モジュール103に渡す(ステップS203)。
差分情報検出モジュール103は、取得した差分管理対象ファイル群200をグループ情報210に基づいてグループ分けする(ステップS204)。ここでは、取得した差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」及び「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」は、両者ともグループB(グループ名:「host02 Apache access_log」)のグループ所属条件「host02:C:¥¥Program Files¥¥Apache Group¥¥Apache¥¥logs¥¥access_log(¥.[1−9]{0,1})」に適合するため、グループBに対応付けられる。
差分情報検出モジュール103は、取得した差分管理対象ファイル群200内の全てのファイルの差分検出処理を行い、差分検出情報テーブル22を更新する(ステップS205)。図7を参照して、ステップS205における差分検出処理の詳細を説明する。
先ず、差分情報検出モジュール103は、グループを1つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する(ステップS301)。ここでは、グループBが選択される。差分情報検出モジュール103は、グループを選択すると、そのグループのタイプを確認する(ステップS302)。
グループBは世代管理タイプであるため、差分情報検出モジュール103は、グループBに所属する差分管理対象ファイルを選択し、世代管理タイプ用の差分検出処理を行う(ステップS303)。ここでは最初に差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」が選択される。
図8を参照して、ステップS303における差分検出処理の詳細を説明する。差分情報検出モジュール103は、ステップS301において選択したグループに所属する前回差分検出ファイルがあるかを確認する(ステップS401)。ここではグループBの前回差分検出ファイルに対応する差分検出情報220(グループ名=host02 Apache access_log、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=始点:ファイルの先頭、終点:ファイルの終端)と、差分検出情報220(グループ名=host02 Apache access_log、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「1024バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)があることが確認される。このため、差分情報検出モジュール103は、ステップS403の処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルのファイル情報201にオブジェクト識別子があるかを確認する(ステップS403)。ここでは、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」のファイル情報201にオブジェクト識別子がないことが確認される(ステップS403No)。この場合、差分情報検出モジュール103は、差分管理対象ファイルのファイル名の固定フィールドが検証対象のグループに対応するファイル名の固定フィールドの条件に適合するかどうかを確認する(ステップS408)。ファイル名の固定フィールドが適合しない場合、差分管理対象ファイルは新しいファイルとして判定される(ステップS408No)。この場合、差分管理対象ファイルの全てが差分データ300として判定される。一方、ファイル名の固定フィールドが適合する場合、ステップS405における作成日時の比較処理に移行する。ここでは差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」のファイル名の固定フィールド「access_log」は、グループBに対応するファイルの固定フィールド「preg_match_all(“/(access_log)(¥.[1−9]{0,1}|)/”, $filename, $matches);」の第1パタンに適合するため、差分情報検出モジュール103は、作成日時比較処理に移行する(ステップS408Yes)。
差分情報検出モジュール405は、ファイル情報201に含まれる作成日時に一致する作成日時を有する差分検出情報220があるかを確認する(ステップS405)。ここではファイル情報201に含まれる作成日時=「2007年2月1日 13:01:01」と差分検出情報220(前回差分検出ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」に対応)の作成日時=「2007年2月1日 13:01:01」が一致することが確認される。
次に、ファイル情報201内の作成日時と一致する差分検出情報220がある場合、差分情報検出モジュール103は、ファイル情報201内のファイルのデータサイズと、当該差分検出情報220に含まれるデータサイズとを比較する(ステップS406)。これにより、作成日時が一致する差分管理対象ファイルと前回差分検出ファイルとのファイルサイズを比較することができる。ステップS406の処理において、差分管理対象ファイルのサイズが前回差分検出ファイルのサイズ以下である場合、差分なしと判定される(ステップS407)。この場合、差分検出情報220は更新されない。一方、ステップS406の処理において差分管理対象ファイルのサイズが前回差分検出ファイルのサイズより大きい場合、そのサイズ差分のデータが差分データ300として判定される。この場合、差分情報検出モジュール103は、前回差分検出ファイルの終端の次のデータを始点として指定し、差分管理対象ファイルの終端をデータの終端として指定する差分情報230を取得する。ここでは、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」のファイルサイズ=「512バイト」と、作成日時が一致する前回差分検出ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」のファイルサイズ=「512バイト」が比較され、ファイルサイズに差がないことが確認される(ステップS407)。この場合、差分情報検出モジュール103は、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」の始点及び終点を差分データ300の始点及び終点として指定する差分情報230を取得する。
以上のように、ステップS303における差分検出処理が終了すると、図7に示すステップS304における処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルとともに取得したファイル情報201から世代管理タイプ用の差分検出情報220を取得する(ステップS304)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル「「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」のファイル情報201(ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」と、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」と、グループBとを対応付けて新たな差分検出情報220として取得する。ただし、ファイルパスは、差分検出情報220として必須ではない。
差分情報検出モジュール103は、取得した新たな差分検出情報220を差分情報管理モジュール102を介して、差分検出情報テーブル22に記録する(ステップS305)。ここでは、新たな差分検出情報220として(グループ名=「host02 Apache access_log」、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)が記録される。尚、このタイミングでは記録した差分検出情報テーブル22の差分検出情報は参照できない。このため、差分情報管理モジュール102は、新たに記録された差分検出情報220を参照可能に設定する(ステップS306)。
ステップS306において、差分情報検出モジュール103は、取得した差分情報230を差分情報出力モジュール104に渡す。ここでは、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」に新たなデータ(差分データ300)がないことを差分情報230として差分情報出力モジュール104に通知する。差分情報出力モジュール104は、差分情報230に基づいて差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」からのデータの読み出しを行わない。差分情報管理モジュール102は、今回処置したグループに対応する古い差分検出情報220(ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=始点:ファイルの先頭、終点:ファイルの終端)を削除し、今回、新たに格納した差分検出情報220を参照可能に設定する。ここでは、今回格納した新たな差分検出情報220(グループ名=「host02 Apache access_log」、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)が参照可能に設定される。
次に、差分管理対象ファイル群200内に、グループBに所属し、差分検出されていない差分管理対象ファイルが有る場合、ステップS303に移行する(ステップS307No)。ステップS303では、次の差分管理対象ファイルが選択され、世代管理タイプ用の差分検出処理が行われる。ここでは、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」(ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「1024バイト」)が選択される。
図8を参照して、ステップS303における差分検出処理の詳細を説明する。差分情報検出モジュール103は、ステップS301において選択したグループに所属する前回差分検出ファイルがあるかを確認する(ステップS401)。ここではグループBの前回差分検出ファイルに対応する差分検出情報220(グループ名=host02 Apache access_log、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)と、差分検出情報220(グループ名=host02 Apache access_log、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「1024バイト」、差分情報=「始点:ファイルの先頭、終点:ファイルの終端」)があることが確認される。このため、差分情報検出モジュール103は、ステップS403の処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルのファイル情報201にオブジェクト識別子があるかを確認する(ステップS403)。ここでは、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」のファイル情報201にオブジェクト識別子がないことが確認される(ステップS403No)。この場合、差分情報検出モジュール103は、差分管理対象ファイルのファイル名の固定フィールドが検証対象のグループに対応するファイル名の固定フィールドの条件に適合するかどうかを確認する(ステップS408)。ファイル名の固定フィールドが適合しない場合、差分管理対象ファイルは新しいファイルとして判定される(ステップS408No)。この際、差分管理対象ファイルの全てが差分データ300として判定される。一方、ファイル名の固定フィールドが適合する場合、ステップS405における作成日時比較処理に移行する。ここでは差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」のファイル名の固定フィールド「access_log」は、グループBに対応するファイルの固定フィールド「preg_match_all(“/(access_log)(¥.[1−9]{0,1}|)/”, $filename, $matches);」の第1パタンに適合するため、差分情報検出モジュール103は、作成日時比較処理に移行する(ステップS408Yes)。
差分情報検出モジュール405は、ファイル情報201に含まれる作成日時に一致する作成日時を有する差分検出情報220があるかを確認する(ステップS405)。ここではファイル情報201に含まれる作成日時=「2007年3月1日 13:01:01」と差分検出情報220(前回差分検出ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」に対応)の作成日時=「2007年3月1日 13:01:01」が一致することが確認される。
次に、ファイル情報201内の作成日時と一致する差分検出情報220がある場合、差分情報検出モジュール103は、ファイル情報201内のファイルのデータサイズと、当該差分検出情報220に含まれるデータサイズとを比較する(ステップS406)。ここでは、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」のファイルサイズ=「2048バイト」と前回差分検出ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」のファイルサイズ=「1024バイト」が比較され、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」のファイルサイズが1024バイト大きいことが確認される(ステップS406Yes)。この場合、差分管理対象ファイルのサイズの方が「1024バイト」大きいため、差分管理対象ファイルの始点から1024バイト進んだ位置からファイルの終端までが差分データ300であると判断される。又、差分情報検出モジュール103は、差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」の1025バイト目を差分データ300の始点、その終端を差分データ300の終端として指定する差分情報230を取得する(ステップS409)。
以上のように、ステップS303における差分検出処理が終了すると、図7に示すステップS304における処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルとともに取得したファイル情報201から世代管理タイプ用の差分検出情報220を取得する(ステップS304)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル「host01:/var/adm/syslog/OLDsyslog.log」のファイル情報201(ファイル情報201:ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「2048バイト」)と、差分情報230=「始点:ファイルの先頭から1025バイト目、終点:ファイルの終端」とグループBとを対応付けて新たな差分検出情報220として取得する。ただし、ファイルパスは、差分検出情報220として必須ではない。
差分情報検出モジュール103は、取得した新たな差分検出情報220を差分情報管理モジュール102を介して、差分検出情報テーブル22に記録する(ステップS305)。ここでは、新たな差分検出情報220として(グループ名=「host02 Apache access_log」、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「2048バイト」、差分情報230=始点:ファイルの先頭から1025バイト目、終点:ファイルの終端)が記録される。尚、このタイミングでは記録した差分検出情報テーブル22の差分検出情報は参照できない。このため、差分情報管理モジュール102は、新たに記録された差分検出情報220を参照可能に設定する(ステップS306)。
図9を参照して、差分情報検出モジュール103は、取得した差分情報230を差分情報出力モジュール104に渡す(ステップS501)。差分情報出力モジュール104は、差分情報230に対応する差分管理対象ファイルから差分情報230の示す差分の始点から終点までのデータを順に読み込み、差分データ300として出力する(ステップS502)。ここでは、差分情報230を参照して差分管理対象ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」の1025ビット目から終端(2048ビット目)までのデータが順に読み込まれ出力装置15に出力される。この際、差分情報管理モジュール102は、今回処置したグループに対応する古い差分検出情報220(前回差分検出ファイル「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」の差分検出情報220)を削除し、今回、新たに格納した差分検出情報220を参照可能に設定する。ここでは、今回格納した新たな差分検出情報220(グループ名=「host02 Apache access_log」、ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「2048バイト」、差分情報230=始点:ファイルの先頭から1025バイト目、終点:ファイルの終端)が参照可能に設定される。
ステップS303〜S306の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる(ステップS307)。グループ内の全ての差分管理対象ファイルに対しステップS303〜S306の処理が行われると、ステップS308に移行する(ステップS307Yes)。ステップS308では、差分管理対象ファイル群200内の全てのファイルに対し、差分検出処理が実行されたかが確認される。ここで、選択されていない差分管理対象ファイルがある場合、ステップS301に移行して、当該ファイルが所属するグループを選択し、差分検出処理を実行する。このように、ステップS301以降に続く差分検出処理は、取得した差分管理対象ファイル群200が所属する全てのグループに対して行われる。ここでは、取得した差分管理対象ファイルがグループBのみに所属するため、グループBに所属する差分管理対象ファイル群200に対してのみ差分検出処理が行われる。
以上のように、グループBに対応する差分検出情報220として前回記録された差分検出情報220(ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」))と、差分検出情報220(ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「1024バイト」、差分情報230=「始点:ファイルの先頭、終点:ファイルの終端」)が削除され、差分検出情報220(差分管理対象ファイル(ファイル情報201:ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log.1」、作成日時=「2007年2月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=始点:ファイルの先頭から1025バイト目、終点:ファイルの終端)と、差分検出情報220(ファイル情報201:ファイルパス=「host02:C:¥Program Files¥Apache Group¥Apache¥logs¥access_log」、作成日時=「2007年3月1日 13:01:01」、オブジェクト識別子=「なし」、ファイルサイズ=「2048バイト」、差分情報230=始点:ファイルの先頭から1025バイト目、終点:ファイルの終端)がグループBに対応する新たな差分検出情報220として記録される。
本発明では、差分管理対象のファイルにオブジェクト識別子が含まれていない場合でも、ファイル名の固定フィールドを検証し、作成日時を比較することで、差分管理対象ファイルと同一な前回差分検出ファイルを抽出し、両者の差分を検出することができる。
次に、差分検出情報テーブル22に差分検出情報220が記録されていない初期状態において行われるDB用の差分管理対象ファイルに対する差分検出処理の詳細を説明する。
差分情報検出モジュール103は、差分検出処理の指示に応答して差分管理対象ファイル群200と、対応するファイル情報201を取得する(ステップS201)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル群200として差分管理対象ファイル(ファイル情報201:ファイルパス=「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」、作成日時=「2007年2月2日 14:02:02」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」)とを取得する。
次に、差分情報検出モジュール103は、グループ情報テーブル21に登録されているグループA、B、Cのグループ情報210を取得する(ステップS202)。
初期状態では差分検出情報テーブル22に、差分検出情報220が記録されていないため、差分情報検出モジュール103は、「差分検出情報なし」という差分検出情報220を取得する(ステップS203)。
差分情報検出モジュール103は、取得した差分管理対象ファイルをグループ情報210に基づいてグループ分けする(ステップS204)。ここでは、取得した差分管理対象ファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」は、グループB(グループ名:「host03 event.csv」)のグループ所属条件「host03:C:¥¥Documents and Settings¥¥user1¥¥My Documents¥¥event¥.csv」に適合するため、グループBに対応付けられる。
差分情報検出モジュール103は、取得した差分管理対象ファイル群200内の全てのファイルの差分検出処理を行い、差分検出情報テーブル22を更新する(ステップS205)。図7を参照して、ステップS205における差分検出処理の詳細を説明する。
先ず、差分情報検出モジュール103は、グループを1つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する(ステップS301)。ここでは、グループCが選択される。差分情報検出モジュール103は、グループを選択すると、そのグループのタイプを確認する(ステップS302)。選択したグループが「DBタイプ」又は「再帰タイプ」である場合、ステップS309の処理に移行する(ステップS302No)。
グループCはDBタイプであるため、差分情報検出モジュール103は、グループCに所属する差分管理対象ファイルを選択し、DBタイプ用の差分検出処理を行う(ステップS309)。ここでは差分管理対象ファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」が選択される。ステップS309におけるDBタイプ用の差分検出処理の詳細を図10に示す。
図10を参照して、差分情報検出モジュール103は、ステップS301において選択したグループに所属する前回差分検出ファイルがあるかを確認する(ステップS601)。ここで、グループに前回差分検出ファイルがある場合、すなわち、グループに対応付けられた差分検出情報220が既に記録されている場合、ステップS603の処理に移行する(ステップS601Yes)。一方、グループに所属する前回差分検出ファイルがない場合、すなわち、グループに対応付けられた差分検出情報220が未登録の場合、差分情報検出モジュール103は、ステップS303で選択された差分管理対象ファイルのデータの全てを差分データ300として判定する(ステップS602)。この際、差分情報検出モジュール103は、差分管理対象ファイルにおけるデータの始点及び終点を差分情報230として取得する。
ここでは、グループCに対する差分検出はこれが最初であるため、前回差分検出ファイルがないことが確認される。この場合、ステップS602の処理において、差分管理対象ファイル「host01:/var/adm/syslog/syslog.log」のデータは、全て新たなデータ、すなわち全て差分データ300であると判定される。又、差分情報検出モジュール103は、差分管理対象ファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」のデータの始点及び終端を差分データ300の始点及び終点として指定する差分情報230を取得する。
以上のように、ステップS303における差分検出処理が終了すると、図7に示すステップS310における処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルとともに取得したファイル情報201からDBタイプ用の差分検出情報220を取得する(ステップS310)。この際、差分検出情報220には差分データ300の読み取り位置を示す差分情報230が含まれる。DBタイプ用の差分情報230は、差分管理対象ファイルにおける最後のデータから遡って、少なくとも1回(1回より多くても良い)タイムスタンプが変化するデータまでのデータを含む。例えば、差分管理対象ファイルのデータが以下のように昇順に並んでいる場合、
「2007/03/01 10:10:10 message_1」、「2007/03/01 10:10:10 message_2」、「2007/03/01 10:10:10 message_3」、「2007/03/01 10:10:10 message_1」、「2007/03/01 10:10:10 message_2」、「2007/03/01 10:10:11 message_3」、「2007/03/01 10:10:11 message_1」、「2007/03/01 10:10:12 message_2」、「2007/03/01 10:10:12 message_3」、
DB用の差分情報230は、最後のデータ(「2007/03/01 10:10:12 message_3」)から 1回タイムスタンプが変化するデータ(「2007/03/01 10:10:11 message_1」)までのデータとなる。すなわち、差分情報230は、「2007/03/01 10:10:11 message_1」、「2007/03/01 10:10:12 message_2」、「2007/03/01 10:10:12 message_3」となる。
差分情報検出モジュール103は、新たに取得した差分検出情報220を差分情報管理モジュール102を介して、差分検出情報テーブル22に記録する(ステップS305)。尚、このタイミングでは記録した差分検出情報テーブル22の差分検出情報は参照できない。このため、差分情報管理モジュール102は、新たに記録された差分検出情報220を参照可能に設定する(ステップS306)。
図9を参照して、差分情報検出モジュール103は、取得した差分情報230を差分情報出力モジュール104に渡す(ステップS501)。差分情報出力モジュール104は、差分情報230に対応する差分管理対象ファイルから差分情報230に基づいて差分の始点から終点までのデータを順に読み込み、差分データ300として出力する(ステップS502)。ここではファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」のデータの全てが読み込まれ、出力装置15に出力される。この際、差分情報管理モジュール102は、今回処置したグループに対応する古い差分検出情報220(前回差分検出ファイルの差分検出情報220)を削除し、今回、新たに格納した差分検出情報220を参照可能に設定する。ここでは、削除する差分検出情報は無いため、今回格納した新たな差分検出情報220(ファイルパス=「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」、作成日時=「2007年2月2日 14:02:02」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=「2007/03/01 10:10:11 message_1」、「2007/03/01 10:10:12 message_2」、「2007/03/01 10:10:12 message_3」)が参照可能に設定される。
ステップS303〜S306の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる(ステップS307)。ここでは、取得した差分管理対象ファイルがグループCのみに所属するため、グループCに所属する差分管理対象ファイル群200に対してのみ差分検出処理が行われる。
次に、差分検出情報テーブル22に上述の差分検出情報220が記録されている状態において、差分情報検出モジュール103に対し新たな差分情報検出処理が指示された場合について説明する。
差分情報検出モジュール103は、差分検出処理の指示に応答して差分管理対象ファイル群200と、対応するファイル情報201を取得する(ステップS201)。ここでは、差分情報検出モジュール103は、差分管理対象ファイル群200として差分管理対象ファイル(ファイル情報201:ファイルパス=「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」、作成日時=「2007年3月3日 15:03:03」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」)を取得する。
次に、差分情報検出モジュール103は、グループ情報テーブル21に登録されているグループA、B、Cのグループ情報210を取得する(ステップS202)。
差分情報管理モジュール102は、差分検出情報テーブル22を参照して、既に記録されている差分検出情報220(グループ名=「host03 event.csv」、ファイルパス=「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」、作成日時=「2007年2月2日 14:02:02」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=「2007/03/01 10:10:11 message_1」、「2007/03/01 10:10:12 message_2」、「2007/03/01 10:10:12 message_3」)を差分情報検出モジュール103に渡す(ステップS203)。
差分情報検出モジュール103は、取得した差分管理対象ファイル群200をグループ情報210に基づいてグループ分けする(ステップS204)。ここでは、取得した差分管理対象ファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」のグループ所属条件host03:C:¥¥Documents and Settings¥¥user1¥¥My Documents¥¥event¥.csv」に適合するため、グループCに対応付けられる。
差分情報検出モジュール103は、取得した差分管理対象ファイル群200内の全てのファイルの差分検出処理を行い、差分検出情報テーブル22を更新する(ステップS205)。図7を参照して、ステップS205における差分検出処理の詳細を説明する。
先ず、差分情報検出モジュール103は、グループを1つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する(ステップS301)。ここでは、グループCが選択される。差分情報検出モジュール103は、グループを選択すると、そのグループのタイプを確認する(ステップS302)。
グループCはDBタイプであるため、差分情報検出モジュール103は、グループCに所属する差分管理対象ファイルを選択し、DBタイプ用の差分検出処理を行う(ステップS309)。ここでは差分管理対象ファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」が選択される。
図10を参照して、ステップS306における差分検出処理の詳細を説明する。差分情報検出モジュール103は、ステップS301において選択したグループに所属する前回差分検出ファイルがあるかを確認する(ステップS601)。ここではグループCの前回差分検出ファイルに対応する差分検出情報220(「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」、作成日時=「2007年2月2日 14:02:02」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=「2007/03/01 10:10:11 message_1」、「2007/03/01 10:10:12 message_2」、「2007/03/01 10:10:12 message_3」))があることが確認される。このため、差分情報検出モジュール103は、ステップS603の処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」内で最も古いデータの位置を探索する(ステップS603)。ここで、差分情報検出モジュール103はタイムスタンプを参照し、差分管理対象ファイル内のデータが昇順に並んでいる場合はファイルの始点、降順に並んでいる場合はファイル終点を最も古いデータの位置とする。
次に、差分情報検出モジュール103は、最も古いデータの位置から差分データ300の開始位置を探索する(ステップS604)。詳細には、差分情報検出モジュール103は、差分管理対象ファイルの最も古いデータの位置から前回差分検出ファイルにないデータの位置を探索する。差分情報検出モジュール103は、差分管理対象ファイルの最も古いデータから順に差分検出情報220に含まれる差分情報230と一致するデータを探索し、一致したデータの次のデータを差分データ300の開始位置として判定する。この際、差分情報230と一致するデータがない場合、差分情報検出モジュール103は、差分情報230内の最も古いデータを古い順に1つずつ削除し、差分管理対象ファイルの最も古いデータの位置に適合させる。これにより、差分管理対象ファイルの最も古いデータと差分情報230の最も古いデータを適合させることができる。ここで、両者の最も古いデータを適合させることができた場合、差分情報検出モジュール103は、適合したデータの次のデータを前回差分検出ファイルにない差分データ300の開始位置として判定する。
ステップS604において差分データ300の開始位置が発見されない場合、差分なしと判定される。すなわち、全ての差分情報230内のデータを削除した場合は、ファイルの全てが差分データ300であると判定される(ステップS605No、S607)。この場合、差分検出情報220の更新は行われない。一方、差分データ300の開始位置が発見された場合、開始位置から最も新しいデータ位置までが差分データ300として判定される(ステップ605Yes、S606)。この場合、差分情報検出モジュール103は、発見した開始位置から最も新しいデータ位置までのデータを新しい差分情報230として取得する。ここでは、差分管理対象ファイルにおいて、差分情報230のデータと一致するデータの次のデータの位置を発見できたものとする。
以上のように、ステップS303における差分検出処理が終了すると、図7に示すステップS310における処理に移行する。
差分情報検出モジュール103は、差分管理対象ファイルとともに取得したファイル情報201からDBタイプ用の差分検出情報220を取得する(ステップS310)。この際、差分検出情報220には差分データ300の読み取り位置を示す差分情報230が含まれる。ここでは、差分情報検出モジュール103は、差分管理対象ファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」のファイル情報201ファイル情報201:ファイルパス=「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」、作成日時=「2007年2月2日 14:02:02」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」)と、ステップS307で取得した差分情報230差分情報230=「始点:一致データの次のデータ位置、終点:最も新しいデータ位置」とグループCを対応付けて新たな差分検出情報220として取得する。ただし、ファイルパスは、差分検出情報220として必須ではない。
差分情報検出モジュール103は、取得した新たな差分検出情報220を差分情報管理モジュール102を介して、差分検出情報テーブル22に記録する(ステップS311)。ここでは、新たな差分検出情報220として(ファイル情報201:ファイルパス=「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」、作成日時=「2007年2月2日 14:02:02」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230)がグループCに対応付けられて記録される。尚、このタイミングでは記録した差分検出情報テーブル22の差分検出情報は参照できない。このため、差分情報管理モジュール102は、新たに記録された差分検出情報220を参照可能に設定する(ステップS312)。
図9を参照して、差分情報検出モジュール103は、取得した差分情報230を差分情報出力モジュール104に渡す(ステップS501)。差分情報出力モジュール104は、差分情報230に対応する差分管理対象ファイルから差分情報230の示す差分の始点から終点までのデータを順に読み込み、差分データ300として出力する(ステップS502)。ここでは、差分情報230を参照して、差分管理対象ファイル「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」における差分の始点(一致するデータの次のデータの位置)から最も新しいデータの位置(昇順の場合ファイルの終点、降順の場合ファイルの始点)までのデータが順に読み込まれ出力装置15に出力される。この際、差分情報管理モジュール102は、今回処置したグループに対応する古い差分検出情報220(前回差分検出ファイルの差分検出情報220)を削除し、今回、新たに格納した差分検出情報220を参照可能に設定する。ここでは、今回格納した新たな差分検出情報220(グループ名=「host03 event.csv」、ファイルパス=「host03:C:¥Documents and Settings¥user1¥My Documents¥event.csv」、作成日時=「2007年2月2日 14:02:02」、オブジェクト識別子=「なし」、ファイルサイズ=「512バイト」、差分情報230=「始点:一致データの次のデータ位置、終点:最も新しいデータ位置」)が参照可能に設定される。
ステップS309〜S312の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる(ステップS313)。グループ内の全ての差分管理対象ファイルに対しステップS303〜S306の処理が行われると、ステップS308に移行する(ステップS313Yes)。ステップS308では、差分管理対象ファイル群200内の全てのファイルに対し、差分検出処理が実行されたかどうかが確認される。ここで、選択されていない差分管理対象ファイルがある場合、ステップS301に移行して、当該ファイルが所属するグループを選択し、差分検出処理を実行する。このように、ステップS301以降に続く差分検出処理は、取得した差分管理対象ファイル群200が所属する全てのグループに対して行われる。ここでは、取得した差分管理対象ファイルがグループCのみに所属するため、グループCに所属する差分管理対象ファイル群200に対してのみ差分検出処理が行われる。
以上のように、本発明によるファイル差分管理装置10は、データスタンプに基づいて最も古いデータの位置や、最も新しいデータの位置を判別することで、取得した差分管理対象ファイルにおける差分データ300の開始位置を検出する。詳細には、ファイル差分管理装置10は、差分検出時のファイルの最もタイムスタンプが大きい(最近の)データから遡って、少なくとも次にタイムスタンプが大きいデータまでを差分情報230として保持する。ファイル差分管理装置10は、差分管理対象ファイルにおいて、最もタイムスタンプが小さい(最古の)データの位置から最もタイムスタンプが大きいデータの位置に向かって、差分情報230と完全一致する部分を検索し、最初に一致したところの次のデータから最もタイムスタンプが大きいデータまでを差分の始点から終点までを新たな差分情報230として取得することができる。又、両者に完全に一致する部分がない場合は、保持している差分検出情報の最も古いデータを1つ削除して、対象のファイルの最もタイムスタンプが小さいデータの位置に合わせて比較を行う(削除して比較を行う処理は一致するまで行われる)。削除することによって一致させることができた場合は、一致したところの次のデータから最もタイムスタンプが大きいデータまでを差分の始点から終点までとして取得することができる。差分情報230を最後まで削除した場合は、対象のファイルはすべてが新しいデータであると判定する。このように、本発明によるファイル差分管理装置10は、各データがタイムスタンプを持ち、古いデータから順次削除されるようなファイルに対しても差分検出できる。
次に、DBタイプと再帰タイプのファイルに対する差分管理の違いについて説明する。再帰タイプの差分管理対象ファイルに対する差分検出処理は、ステップS603における処理のみがDBタイプに対する処理と相違し、その他の処理は、同様である。
ステップS603の処理において、「再帰タイプ」の差分管理対象ファイルの最も古いデータの位置を探索する場合、差分情報検出モジュール103は、データのタイムスタンプの前後関係を確認し、タイムスタンプが逆行している箇所で、その差が最も大きいところを最も古いデータの位置とする。
例えば、次のようにデータが並んでいる場合、
「2007/03/01 10:10:10 msg_A」、「2007/03/01 10:10:11 msg_B」、「2007/03/01 10:10:10 msg_C」、「2007/02/01 10:10:11 msg_D」、「2007/02/01 10:10:10 message_E、
タイムスタンプが逆行し、その差が最も大きいデータ「2007/02/01 10:10:11 msg_D」の位置を最も古いデータの位置とする。また、最も新しいデータの位置は、最も大きいデータの前にある「2007/03/01 10:10:10 msg_C」の位置とする。
以上のように、本発明によれば、ファイルのタイプが再帰タイプであっても、データスタンプに基づいて最も古いデータの位置や、最も新しいデータの位置を判別することができる。
本発明では、ファイルの差分管理の範囲を同一グループ内のファイルとし、その中で前回差分検出時のファイル群と今回のファイル群のファイルのオブジェクト識別子、ファイルの作成日時、ファイル名などを用いて、同一ファイルかどうかを判定する。このため、ファイル名が変更されても、ファイルの差分管理を行うことができる。又、同一ファイルとして判定された場合、ファイルのサイズを用いて新たに追加されたデータの位置を取得することができる。この場合、本発明によるファイル差分管理装置10は、ファイルの内容を比較することなく差分を検出できるため、前回差分検出ファイルの内容を保持する必要は無い。従って、差分管理に必要な記憶容量を小さくすることができる。
又、データベースからタイムスタンプを持つデータを取り出したファイル(DBタイプ)や、1つのファイルにタイムスタンプを持つデータを再帰的に出力するファイル(再帰タイプ)の場合、ファイル差分管理装置10は、タイムスタンプに基づいて差分データ300の始点及び終点を検出することができる。
従って、本発明によれば、定期的にログファイルを収集するシステムにおいて、そのログファイルから新しいログデータのみを収集するための装置(プログラム)に適用できる。
以上、本発明の実施例を詳述してきたが、具体的な構成は上記実施例に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。本実施例では、世代管理タイプ、DBタイプ、再帰タイプの3つのタイプのグループが登録されたファイル差分管理装置を一例に説明したが、登録されるグループの種類や数は1以上であればこれに限らない。又、ファイル差分管理装置10に取得される差分管理対象ファイル群200は、複数種類のグループに対応するファイル群を含んでいても良い。
図1は、本発明によるファイル差分管理装置の実施例における構成を示す図である。 図2は、本発明に係るグループ情報テーブルの構成を示す図である。 図3は、本発明に係る差分検出情報テーブルの構成を示す図である。 図4は、本発明による差分管理モジュールの実施例における構成を示す機能ブロック図である。 図5は、本発明によるファイル差分管理装置の実施例におけるグループ登録処理の動作を示すフロー図である。 図6は、本発明によるファイル差分管理装置の実施例における差分検出処理の全体動作を示すフロー図である。 図7は、本発明によるファイル差分管理装置の実施例における差分検出処理の動作を示すフロー図である。 図8は、本発明によるファイル差分管理装置の実施例における世代管理タイプ用差分検出処理の動作を示すフロー図である。 図9は、本発明によるファイル差分管理装置の実施例における差分データ出力処理の動作を示すフロー図である。 図10は、本発明によるファイル差分管理装置の実施例におけるDBタイプ用又は再帰タイプ用の差分検出処理の動作を示すフロー図である。
符号の説明
10:ファイル差分管理装置
11:CPU
12:RAM
13:記憶装置
14:入力装置
15:出力装置
16:I/Oインタフェース
20:差分管理プログラム
21:グループ情報テーブル
22:差分検出情報テーブル
23:差分管理対象格納部
200:差分管理対象ファイル群
210:グループ情報
220:差分検出情報
230:差分情報
300:差分データ

Claims (21)

  1. グループ情報テーブルと差分検出情報テーブルとが格納される記憶装置と、
    入力された差分管理対象ファイルの元のファイルである前回差分検出ファイルを検索し、両者の差分を検出する差分情報検出モジュールと、
    前記差分を検出するために用いる差分検出情報を前記差分検出情報テーブルに記録する差分情報管理モジュールと、
    を具備し、
    前記差分情報検出モジュールは、前記差分管理対象ファイルが所属するグループを、グループ情報テーブルに登録されたグループ所属条件に応じて選定し、
    前記グループと同一グループに対応付けられた第1差分検出情報を前記差分検出情報テーブルから抽出し、
    前記第1差分検出情報と、前記差分管理対象ファイルのファイル情報との比較結果に基づいて、前記第1差分検出情報の検出に利用された前回差分検出ファイルと、前記差分管理対象ファイルとの差分を検出し、
    前記差分情報管理モジュールは、前記差分が検出された場合、前記ファイル情報と前記グループとを対応付けて新たな第2差分検出情報として差分検出情報テーブルに記録する
    ファイル差分管理装置。
  2. 請求項1に記載のファイル差分管理装置において、
    世代管理タイプ、データベースタイプ(DBタイプ)、又は再帰タイプのいずれかのタイプのグループを、前記グループ情報テーブルに登録する差分管理対象登録モジュールを更に具備し、
    前記差分情報検出モジュールは、前記差分管理対象ファイルが所属するグループのタイプに対応する差分検出処理を行う
    ファイル差分管理装置。
  3. 請求項2に記載のファイル差分管理装置において、
    前記差分管理対象ファイルが所属するグループが前記世代管理タイプに対応する場合、
    前記差分情報検出モジュールは、前記ファイル情報に含まれる第1ファイルサイズと、前記グループと同一グループの前記第1差分検出情報に含まれる第2ファイルサイズとを比較し、
    前記第1ファイルサイズが前記第2ファイルサイズより大きい場合、前記第1ファイルサイズと前記第2ファイルサイズとの差を差分データとして判定し、前記第1ファイルサイズが前記第2ファイルサイズ以下である場合、前記差分データはないと判定する
    ファイル差分管理装置。
  4. 請求項3に記載のファイル差分管理装置において、
    前記差分管理対象モジュールは、前記ファイル情報に含まれる作成日時と一致する作成日時を含む差分検出情報の有無を調査し、前記作成日時が一致する差分検出情報を、ファイルサイズを比較する前記第1差分検出情報として選択する
    ファイル差分管理装置。
  5. 請求項4に記載のファイル差分管理装置において、
    前記差分管理対象モジュールは、前記ファイル情報に含まれるオブジェクト識別子と一致するオブジェクト識別子を含む差分検出情報の有無を調査するステップと、
    前記オブジェクト識別子が一致する差分検出情報の作成日時が、前記ファイル情報に含まれる作成日時と一致するかを調査する
    ファイル差分管理装置。
  6. 請求項4に記載のファイル差分管理装置において、
    前記ファイル情報がオブジェクト識別子を含まない場合、
    前記差分情報検出モジュールは、前記ファイル情報に含まれるファイルパスが前記グループに設定されたファイル名の固定フィールドの判定条件に適合しているかを判定し、前記ファイルパスが前記判定条件に適合する場合、前記ファイル情報に含まれる作成日時と一致する作成日時を含む差分検出情報の有無を調査する差分管理装置。
  7. 請求項2に記載のファイル差分管理装置において、
    前記差分管理対象ファイルが所属するグループが前記DBタイプ又は前記再帰タイプに対応する場合、
    前記差分情報検出モジュールステップは、
    前記差分管理対象ファイル内のタイムスタンプを参照して、前記差分検出対象ファイル内で最も古いデータを探索し、前記タイムスタンプを参照して、最も古いデータの位置から差分データの開始位置を探索し、前記差分データの開始位置から前記差分検出対象ファイル内で最も新しいデータの位置までを前記差分データとして判定する
    ファイル差分管理装置。
  8. 請求項1から7いずれか1項に記載のファイル差分管理装置において、
    前記差分情報検出モジュールは、前記差分管理対象ファイルが所属するグループに対応する差分検出情報がない場合、差分なしと判定し、前記差分管理対象ファイルの全てを差分データとして判定する
    ファイル差分管理装置。
  9. 請求項1から8いずれか1項に記載のファイル差分管理装置において、
    前記差分情報管理モジュールは、前記差分管理対象ファイルにおける前記差分の位置を示す情報を差分情報とし、前記第2差分検出情報に対応付けて前記差分検出情報テーブルに記録する
    ファイル差分管理装置。
  10. 請求項9に記載のファイル差分管理装置において、
    前記差分情報を参照して、前記差分管理対象ファイルから差分データを読み出す差分情報出力モジュールを更に具備するファイル差分管理装置。
  11. コンピュータによって実現されるファイル差分管理方法において、
    (A)入力された差分管理対象ファイルが所属するグループを、グループ情報テーブルに登録されたグループ所属条件に応じて選定するステップと、
    (B)前記グループと同一グループの差分検出情報と、前記差分管理対象ファイルのファイル情報との比較結果に基づいて、前記差分検出情報の検出に利用された前回差分検出ファイルと、前記差分管理対象ファイルとの差分を検出するステップと、
    (C)前記差分が検出された場合、前記ファイル情報と前記グループとを対応付けて新たな差分検出情報として差分検出情報テーブルに記録するステップと
    を具備するファイル差分管理方法。
  12. 請求項11に記載のファイル差分管理方法において、
    前記(A)ステップは、世代管理タイプ、データベースタイプ(DBタイプ)、又は再帰タイプのいずれかのタイプのグループを、前記グループ情報テーブルに登録するステップを備え、
    前記(B)ステップは、(b1)前記差分管理対象ファイルが所属するグループのタイプに対応する差分検出処理を行うステップを備える
    ファイル差分管理方法。
  13. 請求項12に記載のファイル差分管理方法において、
    前記差分管理対象ファイルが所属するグループが前記世代管理タイプに対応する場合、
    前記(b1)ステップは、前記ファイル情報に含まれる第1ファイルサイズと、前記グループと同一グループの差分検出情報に含まれる第2ファイルサイズとを比較するステップと、
    前記第1ファイルサイズが前記第2ファイルサイズより大きい場合、前記第1ファイルサイズと前記第2ファイルサイズとの差を差分データとして判定するステップと、
    前記第1ファイルサイズが前記第2ファイルサイズ以下である場合、前記差分データはないと判定するステップと、
    を備える
    ファイル差分管理方法。
  14. 請求項13に記載のファイル差分管理方法において、
    前記(b1)ステップは、前記ファイル情報に含まれる作成日時と一致する作成日時を含む差分検出情報の有無を調査するステップと、
    前記作成日時が一致する差分検出情報を、ファイルサイズを比較する前記差分検出情報として選択するステップと、
    を更に備えるファイル差分管理方法。
  15. 請求項14に記載のファイル差分管理方法において、
    前記(b1)ステップは、前記ファイル情報に含まれるオブジェクト識別子と一致するオブジェクト識別子を含む差分検出情報の有無を調査するステップと、
    前記オブジェクト識別子が一致する差分検出情報の作成日時が、前記ファイル情報に含まれる作成日時と一致するかを調査するステップと、
    を更に備えるファイル差分管理方法。
  16. 請求項14に記載のファイル差分管理方法において、
    前記ファイル情報がオブジェクト識別子を含まない場合、
    前記(b1)ステップは、前記ファイル情報に含まれるファイルパスが前記グループに設定されたファイル名の固定フィールドの判定条件に適合しているかを判定するステップを更に備え、
    前記ファイルパスが前記判定条件に適合する場合、前記ファイル情報に含まれる作成日時と一致する作成日時を含む差分検出情報の有無を調査する
    差分管理方法。
  17. 請求項12に記載のファイル差分管理方法において、
    前記差分管理対象ファイルが所属するグループが前記DBタイプ又は前記再帰タイプに対応する場合、
    前記(b1)ステップは、
    タイムスタンプを参照して、前記差分検出対象ファイル内で最も古いデータを探索するステップと、
    タイムスタンプを参照して、最も古いデータの位置から差分データの開始位置を探索するステップと、
    前記差分データの開始位置から前記差分検出対象ファイル内で最も新しいデータの位置までを前記差分データとして判定するステップと、
    を備えるファイル差分管理方法。
  18. 請求項11から17いずれか1項に記載のファイル差分管理方法において、
    (D)前記差分管理対象ファイルが所属するグループに対応する差分検出情報がない場合、差分なしと判定するステップと、
    (E)差分なしと判定された場合、前記差分管理対象ファイルの全てを差分データとして判定するステップと、
    を更に具備するファイル差分管理方法。
  19. 請求項1から8いずれか1項に記載のファイル差分管理方法において、
    (F)前記差分管理対象ファイルにおける前記差分の位置を示す情報を差分情報として前記差分検出情報に対応付けて前記差分検出情報テーブルに記録するステップを更に具備するファイル差分管理方法。
  20. 請求項19に記載のファイル差分管理方法において、
    (G)前記差分情報を参照して、前記差分管理対象ファイルから差分データを読み出すステップを更に具備するファイル差分管理方法。
  21. 請求項11から20いずれか1項に記載のファイル差分管理方法をコンピュータによて実現させるためのファイル差分管理プログラム。
JP2007213106A 2007-08-17 2007-08-17 ファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラム Expired - Fee Related JP4324976B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007213106A JP4324976B2 (ja) 2007-08-17 2007-08-17 ファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラム
US12/191,471 US8051041B2 (en) 2007-08-17 2008-08-14 Apparatus and method for file difference management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007213106A JP4324976B2 (ja) 2007-08-17 2007-08-17 ファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラム

Publications (2)

Publication Number Publication Date
JP2009048377A JP2009048377A (ja) 2009-03-05
JP4324976B2 true JP4324976B2 (ja) 2009-09-02

Family

ID=40363764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007213106A Expired - Fee Related JP4324976B2 (ja) 2007-08-17 2007-08-17 ファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラム

Country Status (2)

Country Link
US (1) US8051041B2 (ja)
JP (1) JP4324976B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478876B2 (en) * 2008-09-29 2013-07-02 Infosys Technologies Limited System and method for dynamic management and distribution of data in a data network
US10360251B1 (en) * 2009-11-05 2019-07-23 Netapp Inc. Efficient compression of system logs through metadata-based grouping
US8438270B2 (en) 2010-01-26 2013-05-07 Tenable Network Security, Inc. System and method for correlating network identities and addresses
US8302198B2 (en) 2010-01-28 2012-10-30 Tenable Network Security, Inc. System and method for enabling remote registry service security audits
US8707440B2 (en) 2010-03-22 2014-04-22 Tenable Network Security, Inc. System and method for passively identifying encrypted and interactive network sessions
US8549650B2 (en) 2010-05-06 2013-10-01 Tenable Network Security, Inc. System and method for three-dimensional visualization of vulnerability and asset data
US9367707B2 (en) 2012-02-23 2016-06-14 Tenable Network Security, Inc. System and method for using file hashes to track data leakage and document propagation in a network
US9043920B2 (en) 2012-06-27 2015-05-26 Tenable Network Security, Inc. System and method for identifying exploitable weak points in a network
US9088606B2 (en) 2012-07-05 2015-07-21 Tenable Network Security, Inc. System and method for strategic anti-malware monitoring
US9467464B2 (en) 2013-03-15 2016-10-11 Tenable Network Security, Inc. System and method for correlating log data to discover network vulnerabilities and assets
JP2015022534A (ja) 2013-07-19 2015-02-02 富士ゼロックス株式会社 情報処理装置及びプログラム
JP2016018227A (ja) * 2014-07-04 2016-02-01 富士通株式会社 作業ログ編集方法、情報処理装置、およびプログラム
CN115858308B (zh) * 2022-12-30 2023-06-30 珠海市众知科技有限公司 基于大数据的自动化加工信息智能监测系统及方法
JP2024117487A (ja) * 2023-02-17 2024-08-29 トヨタ自動車株式会社 情報処理装置、情報処理プログラム、及び情報処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3042600B2 (ja) 1996-08-22 2000-05-15 日本電気株式会社 分散ファイルの同期方式
WO2005055055A1 (ja) * 2003-12-05 2005-06-16 Fujitsu Limited データ管理システム,データ管理装置,データ管理方法,データ供給システム,データ管理プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
JP4354314B2 (ja) * 2004-03-16 2009-10-28 株式会社日立製作所 サーバ差分管理システム及び情報処理装置の制御方法
JP4853890B2 (ja) 2004-12-21 2012-01-11 富士通株式会社 データバックアップ装置

Also Published As

Publication number Publication date
US20090049016A1 (en) 2009-02-19
JP2009048377A (ja) 2009-03-05
US8051041B2 (en) 2011-11-01

Similar Documents

Publication Publication Date Title
JP4324976B2 (ja) ファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラム
Carrier Defining digital forensic examination and analysis tools using abstraction layers
US7401080B2 (en) Storage reports duplicate file detection
JP5609637B2 (ja) プログラム、情報処理装置、及び情報処理方法
JP5774794B2 (ja) ストレージシステム及びストレージシステムの制御方法
JP6048038B2 (ja) 情報処理装置,プログラム,情報処理方法
CN106598785A (zh) 文件系统备份与还原的方法及装置
CN105740103B (zh) 一种基于日志的ntfs删除文件恢复方法和装置
CN112069162B (zh) 流计算的数据处理方法、装置、计算机设备和存储介质
CN114116322B (zh) 数据恢复方法、装置、设备及存储介质
CN112115002A (zh) 从损坏或不可信机械硬盘恢复文件的方法及装置
CN109947730B (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
EP2367119B1 (en) Electronic file comparator
Nordvik et al. Generic metadata time carving
CN108459927A (zh) 一种数据备份方法、装置和服务器
CN113760608B (zh) 数据恢复方法和装置、电子设备和存储介质
JP5471721B2 (ja) ログ情報差分抽出管理装置、方法及びプログラム
KR20110023580A (ko) 데이터를 복구하기 위한 방법 및 시스템
KR101623505B1 (ko) 손상된 이벤트 로그 파일을 복원하기 위한 시스템 및 방법
CN114281769A (zh) 磁盘上文件管理方法、装置、计算机设备及存储介质
US20170262439A1 (en) Information processing apparatus and non-transitory computer readable medium
JP3957464B2 (ja) データ更新装置
JP4373029B2 (ja) 文書管理装置及び文書管理方法並びに記録媒体
KR101623508B1 (ko) 삭제된 이벤트 로그 파일을 복원하는 시스템 및 방법
KR100567813B1 (ko) 텐덤 시스템의 트랜잭션 분석 시스템

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090518

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4324976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees