(57)【特許請求の範囲】
【請求項１】
ファイル名の変更によって世代管理されるファイル群について、既存のファイルのファイル名が変更され変更前のファイル名で新しいファイルが作成されるローテーションを検出するファイル管理方法において、
ファイル群をグループ分けしたローテーショングループを作成し、このローテーショングループの情報をローテーショングループ管理手段に格納するローテーショングループ作成ステップと、
前記ローテーショングループに所属するファイルのファイル識別情報を前記ファイル群から取得し、このファイル識別情報をファイル識別情報管理手段に格納するファイル識別情報取得ステップと、
ファイルコピーが開始される前に取得されたファイル識別情報を前記ファイル識別情報管理手段から取得した後に、ファイルコピー完了後にコピー元のファイルのファイル識別情報を前記ファイル群から取得し、同じファイル名のファイル識別情報について、前記ファイルコピーが開始される前のファイル識別情報と前記ファイルコピー完了後のファイル識別情報とを比較してローテーションを検出するローテーション検出ステップと、
ローテーショングループに属する各ファイルのファイルコピーを行う、ローテーショングループ単位のコピーの要求をユーザから受けたときに、コピー対象のローテーショングループをコピー先にコピーし、このローテーショングループに属する各ファイルについて、ファイルコピーが完了する毎にローテーション検出を行い、ローテーションが検出された場合には前記ローテーショングループ単位のコピーを再試行するファイル群コピーステップとを備えることを特徴とするファイル管理方法。
【請求項２】
請求項１記載のファイル管理方法において、
前記ローテーショングループ作成ステップは、前記ローテーショングループに所属するファイルのファイルパスの指定およびファイル識別情報の種類の指定をユーザから受けて、前記ローテーショングループを作成することを特徴とするファイル管理方法。
【請求項３】
請求項２記載のファイル管理方法において、
前記ファイル識別情報は、ファイルパス、ファイルサイズ、ファイル作成日時、ファイル更新日時、ｉ−ｎｏｄｅ（オブジェクト識別子）、現在時刻、ファイルのデータのうちの少なくとも１つであることを特徴とするファイル管理方法。
【請求項４】
ファイル名の変更によって世代管理されるファイル群について、既存のファイルのファイル名が変更され変更前のファイル名で新しいファイルが作成されるローテーションを検出するファイル管理装置において、
ファイル群をグループ分けしたローテーショングループを作成するローテーショングループ作成手段と、
前記ローテーショングループの情報を記憶するローテーショングループ管理手段と、
前記ローテーショングループに所属するファイルのファイル識別情報を前記ファイル群から取得するファイル識別情報取得手段と、
このファイル識別情報取得手段が取得したファイル識別情報を記憶するファイル識別情報管理手段と、
ファイルコピーが開始される前に取得されたファイル識別情報を前記ファイル識別情報管理手段から取得した後に、ファイルコピー完了後にコピー元のファイルのファイル識別情報を前記ファイル群から取得し、同じファイル名のファイル識別情報について、前記ファイルコピーが開始される前のファイル識別情報と前記ファイルコピー完了後のファイル識別情報とを比較してローテーションを検出するローテーション検出手段と、
ローテーショングループに属する各ファイルのファイルコピーを行う、ローテーショングループ単位のコピーの要求をユーザから受けたときに、コピー対象のローテーショングループをコピー先にコピーし、このローテーショングループに属する各ファイルについて、ファイルコピーが完了する毎に前記ローテーション検出手段に前記ローテーションの検出処理を実行させて、ローテーションが検出された場合には前記ローテーショングループ単位のコピーを再試行するファイル群コピー手段とを備えることを特徴とするファイル管理装置。
【請求項５】
請求項４記載のファイル管理装置において、
前記ローテーショングループ作成手段は、前記ローテーショングループに所属するファイルのファイルパスの指定およびファイル識別情報の種類の指定をユーザから受けて、前記ローテーショングループを作成することを特徴とするファイル管理装置。
【請求項６】
請求項５記載のファイル管理装置において、
前記ファイル識別情報は、ファイルパス、ファイルサイズ、ファイル作成日時、ファイル更新日時、ｉ−ｎｏｄｅ（オブジェクト識別子）、現在時刻、ファイルのデータのうちの少なくとも１つであることを特徴とするファイル管理装置。
【請求項７】
ファイル名の変更によって世代管理されるファイル群について、既存のファイルのファイル名が変更され変更前のファイル名で新しいファイルが作成されるローテーションを検出するファイル管理装置としてコンピュータを動作させるファイル管理プログラムにおいて、
ファイル群をグループ分けしたローテーショングループを作成し、このローテーショングループの情報をローテーショングループ管理手段に格納するローテーショングループ作成ステップと、
前記ローテーショングループに所属するファイルのファイル識別情報を前記ファイル群から取得し、このファイル識別情報をファイル識別情報管理手段に格納するファイル識別情報取得ステップと、
ファイルコピーが開始される前に取得されたファイル識別情報を前記ファイル識別情報管理手段から取得した後に、ファイルコピー完了後にコピー元のファイルのファイル識別情報を前記ファイル群から取得し、同じファイル名のファイル識別情報について、前記ファイルコピーが開始される前のファイル識別情報と前記ファイルコピー完了後のファイル識別情報とを比較してローテーションを検出するローテーション検出ステップと、
ローテーショングループに属する各ファイルのファイルコピーを行う、ローテーショングループ単位のコピーの要求をユーザから受けたときに、コピー対象のローテーショングループをコピー先にコピーし、このローテーショングループに属する各ファイルについて、ファイルコピーが完了する毎にローテーション検出を行い、ローテーションが検出された場合には前記ローテーショングループ単位のコピーを再試行するファイル群コピーステップとを、コンピュータに実行させることを特徴とするファイル管理プログラム。
【請求項８】
請求項７記載のファイル管理プログラムにおいて、
前記ローテーショングループ作成ステップは、前記ローテーショングループに所属するファイルのファイルパスの指定およびファイル識別情報の種類の指定をユーザから受けて、前記ローテーショングループを作成することを特徴とするファイル管理プログラム。
【請求項９】
請求項８記載のファイル管理プログラムにおいて、
前記ファイル識別情報は、ファイルパス、ファイルサイズ、ファイル作成日時、ファイル更新日時、ｉ−ｎｏｄｅ（オブジェクト識別子）、現在時刻、ファイルのデータのうちの少なくとも１つであることを特徴とするファイル管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル名の変更によって世代管理されるファイル群について、同じファイル名で新しいファイルが作成されるローテーションを検出するファイル管理方法、ファイル管理装置およびプログラムに関するものである。
【背景技術】
【０００２】
ファイルの移動を検出する手段として、特許文献１に開示されたファイル管理装置がある。このファイル管理装置は、コンテンツファイル群の論理構造を管理するためのコンテンツリストファイルを作成し、このコンテンツリストファイル上の登録情報に基づいて各コンテンツファイルの移動を検出するようにしたものである。
【０００３】
しかし、特許文献１に開示されたファイル管理装置では、ファイル移動の検出範囲が同一ファイル名となっている。すなわち、ファイル名が異なれば別のファイルとして扱う。このため、Ｌｉｎｕｘ（登録商標）のシステムログなどのように、ファイル名がイベントをトリガーとして変更され、同じファイル名で新しいファイルが作成される（ローテーション）場合、ファイル移動を検出することができない。このため、特許文献１に開示されたファイル管理装置では、世代管理されているファイル群のコピーを行う場合に、コピー中にファイル群のローテーションが実行されると、同じファイルを異なるファイル名で複数回コピーしてしまったり、コピーされないファイルができてしまったりする場合がある。
【０００４】
世代管理されているファイル群を管理する手段として、特許文献２に開示されたマスタファイル世代管理装置がある。このマスタファイル世代管理装置は、各ファイルに適用開始日と適用終了日を示す適用期間情報を持たせることにより、同一ファイル名の複数世代のマスタファイルデータを管理するようにしたものである。
【０００５】
【特許文献１】特開２００５−０１０９５０号公報
【特許文献２】特開平１０−２９３７１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上のように、特許文献１に開示されたファイル管理装置では、世代管理されているファイル群のローテーションを検出することができないという問題点があった。
また、特許文献２に開示されたマスタファイル世代管理装置では、世代管理できるのは同一ファイル名のファイル群であって、異なるファイル名の複数のファイルからなるファイル群のローテーションを検出することができないという問題点があった。また、特許文献２に開示されたマスタファイル世代管理装置では、適用期間情報がないファイルを管理することができないという問題点があった。
【０００７】
本発明は、上記課題を解決するためになされたもので、適用期間情報を用いることなしに、異なるファイル名の複数のファイルからなるファイル群のローテーションを検出することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、ファイル名の変更によって世代管理されるファイル群について、既存のファイルのファイル名が変更され変更前のファイル名で新しいファイルが作成されるローテーションを検出するファイル管理方法において、ファイル群をグループ分けしたローテーショングループを作成し、このローテーショングループの情報をローテーショングループ管理手段に格納するローテーショングループ作成ステップと、前記ローテーショングループに所属するファイルのファイル識別情報を前記ファイル群から取得し、このファイル識別情報をファイル識別情報管理手段に格納するファイル識別情報取得ステップと、ファイルコピーが開始される前に取得されたファイル識別情報を前記ファイル識別情報管理手段から取得した後に、ファイルコピー完了後にコピー元のファイルのファイル識別情報を前記ファイル群から取得し、同じファイル名のファイル識別情報について、前記ファイルコピーが開始される前のファイル識別情報と前記ファイルコピー完了後のファイル識別情報とを比較してローテーションを検出するローテーション検出ステップと、ローテーショングループに属する各ファイルのファイルコピーを行う、ローテーショングループ単位のコピーの要求をユーザから受けたときに、コピー対象のローテーショングループをコピー先にコピーし、このローテーショングループに属する各ファイルについて、ファイルコピーが完了する毎にローテーション検出を行い、ローテーションが検出された場合には前記ローテーショングループ単位のコピーを再試行するファイル群コピーステップとを備えることを特徴とするものである。
【０００９】
また、本発明のファイル管理方法の１構成例において、前記ローテーショングループ作成ステップは、前記ローテーショングループに所属するファイルのファイルパスの指定およびファイル識別情報の種類の指定をユーザから受けて、前記ローテーショングループを作成するようにしたものである。
また、本発明のファイル管理方法の１構成例において、前記ファイル識別情報は、ファイルパス、ファイルサイズ、ファイル作成日時、ファイル更新日時、ｉ−ｎｏｄｅ（オブジェクト識別子）、現在時刻、ファイルのデータのうちの少なくとも１つである。
【００１０】
また、本発明のファイル管理装置は、ファイル群をグループ分けしたローテーショングループを作成するローテーショングループ作成手段と、前記ローテーショングループの情報を記憶するローテーショングループ管理手段と、前記ローテーショングループに所属するファイルのファイル識別情報を前記ファイル群から取得するファイル識別情報取得手段と、このファイル識別情報取得手段が取得したファイル識別情報を記憶するファイル識別情報管理手段と、ファイルコピーが開始される前に取得されたファイル識別情報を前記ファイル識別情報管理手段から取得した後に、ファイルコピー完了後にコピー元のファイルのファイル識別情報を前記ファイル群から取得し、同じファイル名のファイル識別情報について、前記ファイルコピーが開始される前のファイル識別情報と前記ファイルコピー完了後のファイル識別情報とを比較してローテーションを検出するローテーション検出手段と、ローテーショングループに属する各ファイルのファイルコピーを行う、ローテーショングループ単位のコピーの要求をユーザから受けたときに、コピー対象のローテーショングループをコピー先にコピーし、このローテーショングループに属する各ファイルについて、ファイルコピーが完了する毎に前記ローテーション検出手段に前記ローテーションの検出処理を実行させて、ローテーションが検出された場合には前記ローテーショングループ単位のコピーを再試行するファイル群コピー手段とを備えるものである。
【００１１】
また、本発明のファイル管理プログラムは、ファイル群をグループ分けしたローテーショングループを作成し、このローテーショングループの情報をローテーショングループ管理手段に格納するローテーショングループ作成ステップと、前記ローテーショングループに所属するファイルのファイル識別情報を前記ファイル群から取得し、このファイル識別情報をファイル識別情報管理手段に格納するファイル識別情報取得ステップと、ファイルコピーが開始される前に取得されたファイル識別情報を前記ファイル識別情報管理手段から取得した後に、ファイルコピー完了後にコピー元のファイルのファイル識別情報を前記ファイル群から取得し、同じファイル名のファイル識別情報について、前記ファイルコピーが開始される前のファイル識別情報と前記ファイルコピー完了後のファイル識別情報とを比較してローテーションを検出するローテーション検出ステップと、ローテーショングループに属する各ファイルのファイルコピーを行う、ローテーショングループ単位のコピーの要求をユーザから受けたときに、コピー対象のローテーショングループをコピー先にコピーし、このローテーショングループに属する各ファイルについて、ファイルコピーが完了する毎にローテーション検出を行い、ローテーションが検出された場合には前記ローテーショングループ単位のコピーを再試行するファイル群コピーステップとを、コンピュータに実行させるようにしたものである。
【発明の効果】
【００１２】
本発明によれば、ファイル群をグループ分けしたローテーショングループを作成し、ローテーショングループの情報をローテーショングループ管理手段に格納しておくことにより、ファイル名が異なっていても同じグループに所属させることができる。また、本発明では、ファイル名の変更によって世代管理されるファイル群についても、ファイル識別情報を比較することにより、ローテーションを検出することができる。また、本発明では、ローテーショングループを作成することにより、適用期間情報を用いる必要がなくなる。
【発明を実施するための最良の形態】
【００１３】
［第１の実施の形態］
以下、本発明の実施の形態について図面を参照して説明する。図１は本発明の第１の実施の形態に係るファイル管理装置の構成を示すブロック図である。図１において、１００はファイル管理装置、２００はファイル名の変更によって世代管理されるファイル群を記憶する記憶装置、３００はユーザがファイル管理装置１００に対して指示を与えるための入力装置、４００はファイル管理装置１００からユーザに対して通知を行うための表示装置である。
【００１４】
ファイル管理装置１００は、ローテーショングループ作成部１０１と、ローテーショングループ管理部１０２と、ファイル識別情報取得部１０３と、ファイル識別情報管理部１０４と、ローテーション検出部１０５とを有する。
【００１５】
ローテーショングループ作成部１０１は、記憶装置２００のコピー対象ファイル群１０８をグループ分けしたローテーショングループを作成する。
ローテーショングループ管理部１０２は、作成されたローテーショングループの情報を記憶する。
【００１６】
ファイル識別情報取得部１０３は、ローテーショングループの情報に対応するファイルのファイル識別情報を記憶装置２００のコピー対象ファイル群１０８から取得する。
ファイル識別情報管理部１０４は、ファイル識別情報取得部１０３が取得したファイル識別情報を記憶する。
【００１７】
ローテーション検出部１０５は、ファイル識別情報管理部１０４からローテーショングループのファイル識別情報を取得した後に、このローテーショングループに所属するファイルのファイル識別情報をコピー対象ファイル群１０８から取得し、取得したファイル識別情報を比較してローテーションを検出する。
【００１８】
こうして、本実施の形態では、ファイル群をグループ分けしたローテーショングループを作成し、ローテーショングループの情報をローテーショングループ管理部１０２に格納しておくことにより、ファイル名が異なっていても同じグループに所属させることができる。また、本実施の形態では、ファイル名の変更によって世代管理される、例えばＦｒｅｅＢＳＤのシステムログなどのファイル群についても、ファイル識別情報を比較することにより、ローテーションを検出することができる。また、本実施の形態では、ローテーショングループを作成することにより、特許文献２に開示されたマスタファイル世代管理装置のように適用期間情報を用いる必要がなくなる。
【００１９】
［第２の実施の形態］
次に、本発明の第２の実施の形態の構成について図面を参照して詳細に説明する。図２は本発明の第２の実施の形態に係るファイル管理装置の構成を示すブロック図である。本実施の形態は、第１の実施の形態をより具体的に説明するものである。本実施の形態のファイル管理装置１００ａは、第１の実施の形態のファイル管理装置１００に対して、ファイル群コピー部１０６とファイルコピー先生成部１０７とを追加したものである。
【００２０】
図２の各部はそれぞれ概略、つぎのような機能を有する。ローテーショングループ作成部１０１は、コピー対象ファイル群１０８をローテーショングループごとにグループ分けするための情報、ファイル識別情報として必要な情報、およびファイルコピーの再試行（リトライ）を行うときの制御情報（最大リトライ回数、リトライインターバル）をユーザの指定によって作成し、これらの作成した情報をローテーショングループ管理部１０２に格納する。
【００２１】
ローテーショングループ管理部１０２は、ローテーショングループ作成部１０１から渡される情報を記憶して管理する。図３は、ローテーショングループ管理部１０２が管理する情報の１例を示す図である。ローテーショングループ管理部１０２は、ローテーショングループ名と、ファイルパスと、ファイル識別情報の種類を指定する情報と、その他の情報を記憶し管理している。
【００２２】
図３においてファイル識別情報（１）の欄の「ファイルパス」は、ファイルパスをファイル識別情報として用いることを示している。ファイル識別情報（２）の「ｉ−ｎｏｄｅ」は、ｉ−ｎｏｄｅ（オブジェクト識別子）をファイル識別情報として用いることを示し、「更新日時」は、ファイル更新日時をファイル識別情報として用いることを示している。ファイル識別情報（３）の「現在時刻」は、現在時刻をファイル識別情報として用いることを示している。ファイル識別情報（４）の「ファイルデータ」は、ファイルのデータをファイル識別情報として用いることを示している。
【００２３】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得する機能と、コピー対象ファイル群１０８からローテーショングループの情報に対応するファイルパスの一覧とこれらのファイルパスで指定されるファイルのファイル識別情報とを取得する機能と、取得したファイルパスの一覧とそれぞれのファイルのファイル識別情報とをファイル識別情報管理部１０４に格納する機能と、指定されたファイルパスのファイルのファイル識別情報をコピー対象ファイル群１０８から取得する機能とを有する。
【００２４】
ファイル識別情報管理部１０４は、ファイル識別情報取得部１０３から渡されるファイルパスの一覧とファイルのファイル識別情報とを複数記憶する。図４は、ファイル識別情報管理部１０４が管理する情報の１例を示す図である。
【００２５】
ローテーション検出部１０５は、ファイル識別情報取得部１０３にファイル識別情報取得要求を行う機能と、ファイル識別情報管理部１０４からファイルパスの一覧とこれらのファイルパスで指定されるファイルのファイル識別情報とを取得する機能と、ファイルパスを指定してファイルのファイル識別情報を取得する機能と、取得したファイル識別情報を比較してローテーションを検出する機能と、ローテーションの検出を通知する機能とを有する。
【００２６】
ファイル群コピー部１０６は、ファイル識別情報管理部１０４からローテーショングループのファイルパス、およびファイルコピーをリトライするときの制御情報を取得する機能と、ファイルコピー先生成部１０７からコピー先のファイルパスを取得する機能と、コピーする情報をコピー対象ファイル群１０８から取得する機能と、コピー対象ファイル群１０８から取得した情報をコピー先にコピーする機能と、ローテーション検出部１０５にローテーション検出要求を行う機能と、ローテーションが検出されたときに、コピー処理をリトライするときの制御情報に従ってリトライする機能とを有する。
ファイルコピー先生成部１０７は、ファイル識別情報管理部１０４からローテーショングループの情報を取得し、コピー先のパスを生成する。
【００２７】
なお、ローテーショングループとは、Ｌｉｎｕｘのシステム・ログのようにファイル名を変更することによって世代管理している一連のログファイルを指す。例えば、ファイルパスがそれぞれ「/var/log/message」、「/var/log/message.1」、「/var/log/message.2」、・・・・「/var/log/message.9」である各ファイルは、同じローテーショングループに属するファイルである。これらのファイルは、「message」の後に続く数字が大きくなるほど、世代が新しくなっている。また、これらのファイルは、ファイルパスがそれぞれ「/var/log/secure」、「/var/log/secure.1」、「/var/log/secure.2」、・・・・「/var/log/secure.9」であるファイルとは別のローテーショングループとなる。
【００２８】
次に、本実施の形態の動作について詳細に説明する。図５はローテーショングループ作成部１０１の動作を示すフローチャート、図６はファイル識別情報取得部１０３の動作を示すフローチャート、図７はローテーション検出部１０５の動作を示すフローチャート、図８はファイル群コピー部１０６の動作を示すフローチャート、図９はファイルコピー先生成部１０７の動作を示すフローチャートである。
【００２９】
まず、ローテーショングループ作成部１０１は、コピー対象ファイル群１０８をローテーショングループごとにグループ分けするために、ユーザの指定に応じてローテーショングループを作成する（図５ステップＳ２００）。ここでは、名称が「syslog」というローテーショングループの作成がユーザから指定されたものとする。
【００３０】
続いて、ローテーショングループ作成部１０１は、ステップＳ２００で作成したローテーショングループに所属するファイルのファイルパスの指定をユーザから受け取る（ステップＳ２０１）。このファイルパスの指定は、複数指定することができ、ワイルドカードや正規表現などを使用することも可能である。ここでは、ファイルパスとして「/var/adm/syslog/syslog.log」と「/var/adm/syslog/OLDsyslog.log」がユーザから指定されたものとする。
【００３１】
さらに、ローテーショングループ作成部１０１は、ステップＳ２００で作成したローテーショングループに属するファイルのファイル識別情報の指定をユーザから受け取る（ステップＳ２０２）。ファイル識別情報としては、ファイルパス、ファイルサイズ、ファイル作成日時、ファイル更新日時、ｉ−ｎｏｄｅ（オブジェクト識別子）、現在時刻、ファイルのデータなどを使用することが可能である。ここでは、ファイル識別情報として使用する情報の種類として、ファイルパスとｉ−ｎｏｄｅがユーザから指定されたものとする。
【００３２】
そして、ローテーショングループ作成部１０１は、ユーザからローテーショングループ作成完了の指示を受けると、作成したローテーショングループの情報（ローテーショングループ名、ファイルパス、ファイル識別情報）をローテーション管理部１０２に格納する（ステップＳ２０３）。なお、前記のとおり、ここでは名称が「syslog」というローテーショングループが１つだけ作成される。
こうして、ローテーショングループが作成されると、ファイル管理装置１００ａは、コピー対象ファイル群１０８のコピー、ローテーションの検出を行うことができる。
【００３３】
次に、ファイル群コピー部１０６は、ユーザからファイル群のコピー要求を受けると（図８ステップＳ７００）、ローテーション検出部１０５にコピー対象のローテーショングループ全体のローテーション検出を要求する（ステップＳ７０１）。ここでは、ローテーショングループ「syslog」のコピー要求を受けたものとする。
【００３４】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がローテーショングループ全体のローテーション検出要求である場合、ファイル識別情報取得部１０３に対してファイル識別情報取得要求を行う（ステップＳ６０１）。ここでは、ファイル群コピー部１０６からローテーショングループ「syslog」のローテーション検出要求を受けて、ファイル識別情報取得部１０３に対してローテーショングループ「syslog」のファイル識別情報取得要求を行う。
【００３５】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がローテーショングループのファイル識別情報取得要求である場合、ローテーショングループ管理部１０２から、要求に該当するローテーショングループの情報を取得する（ステップＳ４０１）。ここでは、ローテーショングループ「syslog」の情報として、ファイルパス「/var/adm/syslog/syslog.log」とファイル識別情報「ファイルパス」、「ｉ−ｎｏｄｅ」の組と、ファイルパス「/var/adm/syslog/OLDsyslog.log」とファイル識別情報「ｉ−ｎｏｄｅ」の組を取得したものとする。なお、ファイル識別情報「ファイルパス」は、ファイルパスの具体的な値ではなく、ファイルパスをファイル識別情報として用いることを示している。同様に、ファイル識別情報「ｉ−ｎｏｄｅ」は、ｉ−ｎｏｄｅの具体的な値ではなく、ｉ−ｎｏｄｅをファイル識別情報として用いることを示している。
【００３６】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得すると、このローテーショングループの情報に対応するファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０２）、取得したファイル識別情報をファイル識別情報管理部１０４に格納する（ステップＳ４０３）。ここでは、ファイル識別情報として、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40728」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40751」の組を取得し格納したものとする。
【００３７】
ローテーション検出部１０５は、ファイル識別情報取得部１０４からローテーショングループのファイル識別情報を取得し（ステップＳ６０２）、ファイル識別情報取得部１０３に対してファイル識別情報取得要求を行う（ステップＳ６０３）。ここでは、ファイル識別情報として、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40728」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40751」の組を取得し（ステップＳ６０２）、再度、ローテーショングループ「syslog」のファイル識別情報取得要求を行う（ステップＳ６０３）。なお、ステップＳ６０２，Ｓ６０３および後述するステップＳ６０４，Ｓ６０５の処理を実施しなくても、期待する効果を得ることは可能であるが、本実施の形態では実施する。これらの処理を実施しない場合は、後述するステップＳ６０６の判断結果を、「ローテーションが発生していない」という結果にする。
【００３８】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がローテーショングループのファイル識別情報取得要求である場合、ローテーショングループ管理部１０２から、要求に該当するローテーショングループの情報を取得する（ステップＳ４０１）。ここでは、ローテーショングループ「syslog」の情報として、ファイルパス「/var/adm/syslog/syslog.log」とファイル識別情報「ファイルパス」、「ｉ−ｎｏｄｅ」の組と、ファイルパス「/var/adm/syslog/OLDsyslog.log」とファイル識別情報「ｉ−ｎｏｄｅ」の組を取得したものとする。
【００３９】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得すると、このローテーショングループの情報に対応するファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０２）、取得したファイル識別情報をファイル識別情報管理部１０４に格納する（ステップＳ４０３）。ここでは、ステップＳ４０２でファイル識別情報を取得する前にローテーションが発生し、ファイルパス「/var/adm/syslog/OLDsyslog.log」が削除され、ファイルパス「/var/adm/syslog/syslog.log」が「/var/adm/syslog/OLDsyslog.log」に書き替えられ、ファイルパス「/var/adm/syslog/syslog.log」が新たに作成されたものとする。このとき、ファイル識別情報としては、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組を取得し格納する。
【００４０】
ローテーション検出部１０５は、ファイル識別情報取得部１０４からローテーショングループのファイル識別情報を取得し（図７ステップＳ６０４）、ステップＳ６０２で取得したファイル識別情報とステップＳ６０４で取得したファイル識別情報を比較する（ステップＳ６０５，Ｓ６０６）。ここでは、ファイル識別情報として、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組を取得し（ステップＳ６０４）、このファイル識別情報をステップＳ６０２で取得したファイル識別情報と比較する（ステップＳ６０５，Ｓ６０６）。
【００４１】
比較すると、ファイルパスとｉ−ｎｏｄｅの組み合わせが異なっているので、ローテーション検出部１０５は、ローテーションが発生したと判断する。ローテーション検出部１０５は、ローテーションが発生したと判断すると、ローテーションが発生したことをファイル群コピー部１０６に通知する（ステップＳ６０７）。
【００４２】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７０２）、ローテーションが発生したことを通知された場合、コピーのリトライ回数を数えるリトライカウント値をカウントアップし（ステップＳ７０３）、カウントアップした後のリトライカウント値が最大リトライ回数以下であるかどうかを判断する（ステップＳ７０４）。ファイル群コピー部１０６は、リトライカウント値が最大リトライ回数以下であれば、所定のリトライインターバルだけ待つ（ステップＳ７０５）。ここでは、最大リトライ回数は「２」に設定されており、リトライカウント値は「０」から「１」にカウントアップされる（ステップＳ７０３）。リトライインターバルは「２秒」に設定されており、ファイル群コピー部１０６は、２秒待ってから処理を再開する（ステップＳ７０５）。
【００４３】
なお、ファイル群コピー部１０６は、ステップＳ７０３でカウントアップした後のリトライカウント値が最大リトライ回数より大きい場合、ローテーショングループのファイル群のコピーに失敗したことをユーザに通知し、コピー処理を終了する（ステップＳ７０６）。
【００４４】
次に、ファイル群コピー部１０６は、リトライカウント値が最大リトライ回数以下である場合、リトライインターバルだけ待った後に（ステップＳ７０５）、ローテーション検出部１０５にコピー対象のローテーショングループ全体のローテーション検出を要求する（ステップＳ７０１）。ここでは、ローテーショングループ「syslog」のローテーション検出要求を行う。
【００４５】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がローテーショングループ全体のローテーション検出要求である場合、ファイル識別情報取得部１０３に対してファイル識別情報取得要求を行う（ステップＳ６０１）。ここでは、ファイル群コピー部１０６からローテーショングループ「syslog」のローテーション検出要求を受けて、ファイル識別情報取得部１０３に対してローテーショングループ「syslog」のファイル識別情報取得要求を行う。
【００４６】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がローテーショングループのファイル識別情報取得要求である場合、ローテーショングループ管理部１０２から、要求に該当するローテーショングループの情報を取得する（ステップＳ４０１）。ここでは、ローテーショングループ「syslog」の情報として、ファイルパス「/var/adm/syslog/syslog.log」とファイル識別情報「ファイルパス」、「ｉ−ｎｏｄｅ」の組と、ファイルパス「/var/adm/syslog/OLDsyslog.log」とファイル識別情報「ｉ−ｎｏｄｅ」の組を取得する。
【００４７】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得すると、このローテーショングループの情報に対応するファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０２）、取得したファイル識別情報をファイル識別情報管理部１０４に格納する（ステップＳ４０３）。ここでは、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組を取得し格納する。
【００４８】
ローテーション検出部１０５は、ファイル識別情報取得部１０４からローテーショングループのファイル識別情報を取得し（ステップＳ６０２）、ファイル識別情報取得部１０３に対してファイル識別情報取得要求を行う（ステップＳ６０３）。
【００４９】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がローテーショングループのファイル識別情報取得要求である場合、ローテーショングループ管理部１０２から、要求に該当するローテーショングループの情報を取得する（ステップＳ４０１）。ここでは、ローテーショングループ「syslog」の情報として、ファイルパス「/var/adm/syslog/syslog.log」とファイル識別情報「ファイルパス」、「ｉ−ｎｏｄｅ」の組と、ファイルパス「/var/adm/syslog/OLDsyslog.log」とファイル識別情報「ｉ−ｎｏｄｅ」の組を取得する。
【００５０】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得すると、このローテーショングループの情報に対応するファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０２）、取得したファイル識別情報をファイル識別情報管理部１０４に格納する（ステップＳ４０３）。ここでは、ファイル識別情報として、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組を取得し格納する。
【００５１】
ローテーション検出部１０５は、ファイル識別情報取得部１０４からローテーショングループのファイル識別情報を取得し（図７ステップＳ６０４）、ステップＳ６０２で取得したファイル識別情報とステップＳ６０４で取得したファイル識別情報を比較する（ステップＳ６０５，Ｓ６０６）。ここでは、ファイル識別情報として、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組を取得したものとする（ステップＳ６０４）。そして、ステップＳ６０２で取得したファイル識別情報、すなわちファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組との比較を行う。
【００５２】
比較すると、ファイルパスとｉ−ｎｏｄｅの組み合わせが一致するので、ローテーション検出部１０５は、ローテーションが発生していないと判断する。ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【００５３】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７０２）、ローテーションが発生していないことを通知された場合、ファイル識別情報管理部１０４からローテーショングループのファイル識別情報を取得する（ステップＳ７０７）。ここでは、ファイル識別情報として、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組と、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組を取得する。
【００５４】
ファイル群コピー部１０６は、ファイル識別情報を取得すると、このファイル識別情報に対するコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、ファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組に対するコピー先情報を要求する。
【００５５】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000001」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000001」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【００５６】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「/var/adm/syslog/OLDsyslog.log」のファイルをコピー先ファイルパス「/tmp/copy_tmp/copy_file_000001」の記憶領域にコピーする。また、コピー元のファイルパス「/var/adm/syslog/OLDsyslog.log」、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時およびファイルサイズを、ファイルパス「/tmp/copy_tmp/copy_file_000001」のファイルと対応付けした形でファイルパス「/tmp/copy_tmp/map_file_000001」の記憶領域に記録する。なお、ここではコピーに成功したものとする。
【００５７】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「/var/adm/syslog/OLDsyslog.log」のファイルのローテーション検出要求を行う。
【００５８】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「/var/adm/syslog/OLDsyslog.log」のファイル識別情報取得要求を行う。
【００５９】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「/var/adm/syslog/OLDsyslog.log」に対応するファイル識別情報としてｉ−ｎｏｄｅ「40751」を取得する。
【００６０】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得したファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組と、ステップＳ７０７で取得されたファイルパス「/var/adm/syslog/OLDsyslog.log」とｉ−ｎｏｄｅ「40751」の組が一致するので、ローテーションが発生していないと判断する。
【００６１】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【００６２】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在する場合、このファイルのコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、コピー対象のローテーショングループ「syslog」にファイルパス「/var/adm/syslog/syslog.log」のファイルがコピーされずに残っている。そこで、ファイル群コピー部１０６は、ファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組に対するコピー先情報を要求する。
【００６３】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000002」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000001」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【００６４】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「/var/adm/syslog/syslog.log」のファイルをコピー先ファイルパス「/tmp/copy_tmp/copy_file_000002」の記憶領域にコピーする。また、コピー元のファイルパス「/var/adm/syslog/syslog.log」、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時およびファイルサイズを、ファイルパス「/tmp/copy_tmp/copy_file_000002」のファイルと対応付けした形でファイルパス「/tmp/copy_tmp/map_file_000001」の記憶領域に追記する。なお、ここではコピーに成功したものとする。
【００６５】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「/var/adm/syslog/syslog.log」のファイルのローテーション検出要求を行う。
【００６６】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「/var/adm/syslog/syslog.log」のファイル識別情報取得要求を行う。
【００６７】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「/var/adm/syslog/syslog.log」に対応するファイル識別情報としてｉ−ｎｏｄｅ「40786」を取得する。
【００６８】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得したファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組と、ステップＳ７０７で取得されたファイルパス「/var/adm/syslog/syslog.log」とｉ−ｎｏｄｅ「40786」の組が一致するので、ローテーションが発生していないと判断する。
【００６９】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【００７０】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在しない場合、コピー対象のローテーショングループのファイル群のコピーが完了したことをユーザに通知する（ステップＳ７１４）。ここでは、ローテーショングループ「syslog」に次のファイルが無いことを確認して、ファイル群のコピーが完了したことを通知する。以上で、一つのローテーショングループのファイル群のコピーが完了した。
【００７１】
こうして、本実施の形態では、第１の実施の形態で説明した効果を得ることができる。また、本実施の形態では、ローテーションがファイル群のコピー中に発生しても、コピー処理をリトライすることによって、ファイルを重複なくコピーすることができる。その理由は、上記で述べたファイル識別情報を元にファイルを識別しているためである。ローテーションの検出には、ファイルコピー前のファイル識別情報とファイルコピー後のファイル識別情報を比較して、差分があればローテーションが発生したと判断する。
【００７２】
また、本実施の形態では、ローテーションがファイル群のコピー中に発生しても、コピー処理をリトライすることによって、ファイル群を連続した形（すなわち、歯抜けのない形）でコピーすることができる。その理由は、予め信頼性の高いコピー対象の一覧を作成してからファイル群のコピー処理を行うため、ファイル群のコピー処理中にファイルにアクセスできないことがあれば、ローテーションが発生したと判断できるためである。
【００７３】
［第３の実施の形態］
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。本実施の形態は、第１の実施の形態をより具体的に説明するものである。本実施の形態においても、ファイル管理装置１００ａの構成および動作は第２の実施の形態と同様であるので、図２〜図９を用いて説明する。
【００７４】
まず、ローテーショングループ作成部１０１は、コピー対象ファイル群１０８をローテーショングループごとにグループ分けするために、ユーザの指定に応じてローテーショングループを作成する（図５ステップＳ２００）。ここでは、名称が「messages」というローテーショングループの作成がユーザから指定されたものとする。
【００７５】
続いて、ローテーショングループ作成部１０１は、ステップＳ２００で作成したローテーショングループに所属するファイルのファイルパスの指定をユーザから受け取る（ステップＳ２０１）。このファイルパスの指定は、複数指定することができ、ワイルドカードや正規表現などを使用することも可能である。ここでは、ファイルパスとして「/var/log/messages」と「/var/log/messages.?」がユーザから指定されたものとする。
【００７６】
さらに、ローテーショングループ作成部１０１は、ステップＳ２００で作成したローテーショングループに属するファイルのファイル識別情報の指定をユーザから受け取る（ステップＳ２０２）。ファイル識別情報としては、ファイルパス、ファイルサイズ、ファイル作成日時、ファイル更新日時、ｉ−ｎｏｄｅ（オブジェクト識別子）、現在時刻、ファイルのデータなどを使用することが可能である。ここでは、ファイル識別情報として使用する情報の種類として、ファイルパスとｉ−ｎｏｄｅがユーザから指定されたものとする。
【００７７】
そして、ローテーショングループ作成部１０１は、ユーザからローテーショングループ作成完了の指示を受けると、作成したローテーショングループの情報をローテーション管理部１０２に格納する（ステップＳ２０３）。なお、前記のとおり、ここでは名称が「messages」というローテーショングループが１つだけ作成される。
こうして、ローテーショングループが作成されると、ファイル管理装置１００ａは、コピー対象ファイル群１０８のコピー、ローテーションの検出を行うことができる。
【００７８】
次に、ファイル群コピー部１０６は、ユーザからファイル群のコピー要求を受けると（図８ステップＳ７００）、ローテーション検出部１０５にコピー対象のローテーショングループ全体のローテーション検出を要求する（ステップＳ７０１）。ここでは、ローテーショングループ「messages」のコピー要求を受けたものとする。
【００７９】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がローテーショングループ全体のローテーション検出要求である場合、ファイル識別情報取得部１０３に対してファイル識別情報取得要求を行う（ステップＳ６０１）。ここでは、ファイル群コピー部１０６からローテーショングループ「messages」のローテーション検出要求を受けて、ファイル識別情報取得部１０３に対してローテーショングループ「messages」のファイル識別情報取得要求を行う。
【００８０】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がローテーショングループのファイル識別情報取得要求である場合、ローテーショングループ管理部１０２から、要求に該当するローテーショングループの情報を取得する（ステップＳ４０１）。ここでは、ローテーショングループ「messages」の情報として、ファイルパス「/var/log/messages」とファイル識別情報「ファイルパス」、「ｉ−ｎｏｄｅ」の組と、ファイルパス「/var/log/messages.?」とファイル識別情報「ｉ−ｎｏｄｅ」の組を取得したものする。
【００８１】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得すると、このローテーショングループの情報に対応するファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０２）、取得したファイル識別情報をファイル識別情報管理部１０４に格納する（ステップＳ４０３）。ここでは、ファイル識別情報として、ファイルパス「/var/log/messages」とｉ−ｎｏｄｅ「51112」の組と、ファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51133」の組を取得し格納したものとする。
【００８２】
図７では、ローテーション検出部１０５は、ステップＳ６０１の後にステップＳ６０２〜Ｓ６０５の処理を行うことになっているが、ステップＳ６０２〜Ｓ６０５の処理を実施しなくても、期待する効果を得ることは可能であるため、本実施の形態では実施しない。ステップＳ６０２〜Ｓ６０５の処理を実施しない場合、ステップＳ６０６の判断結果を「ローテーションが発生していない」という結果にする。ローテーション検出部１０５は、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【００８３】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７０２）、ローテーションが発生していないことを通知された場合、ファイル識別情報管理部１０４からローテーショングループのファイル識別情報を取得する（ステップＳ７０７）。ここでは、ファイル識別情報として、ファイルパス「/var/log/messages」とｉ−ｎｏｄｅ「51112」の組と、ファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51133」の組を取得する。
【００８４】
ファイル群コピー部１０６は、ファイル識別情報を取得すると、このファイル識別情報に対するコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、ファイルパス「/var/log/messages」とｉ−ｎｏｄｅ「51112」の組に対するコピー先情報を要求する。
【００８５】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000001」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000001」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【００８６】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「/var/log/messages」のファイルを開いてコピーを開始する直前にローテーションが開始され、ファイルパス「/var/log/messages.1」が「/var/log/messages.2」に書き替えられ、ファイルパス「/var/log/messages」が「/var/log/messages.1」に書き替えられ、ファイルパス「/var/log/messages」が作成されるまでの間に、ファイル群コピー部１０６の「/var/log/messages」に対するオープンが実行されたものとする。このとき、ファイルパス「/var/log/messages」は存在しないので、オープンは失敗する。この後、ローテーション処理の続きでファイルパス「/var/log/messages」が作成される。
【００８７】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに失敗したと判断した場合、さらにコピー対象のファイルが存在するかどうかを判断し（ステップＳ７１５）、コピー対象のファイルが無いためにコピーが失敗したと判断した場合、ローテーション検出部１０５にローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルが無いことが原因でコピーが失敗したため、ローテーション検出要求を行うものとする。
なお、ファイル群コピー部１０６は、ファイルが無い以外の理由でコピー処理が失敗した場合はローテーション検出要求は行わずに、ローテーショングループのファイル群のコピーに失敗したことをユーザに通知する（ステップＳ７０６）。
【００８８】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピー失敗によるローテーション検出要求である場合、ローテーションが発生したことをファイル群コピー部１０６に通知する（ステップＳ６０７）。
【００８９】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生したことを通知された場合、リトライカウント値をカウントアップし（ステップＳ７０３）、カウントアップした後のリトライカウント値が最大リトライ回数以下であるかどうかを判断する（ステップＳ７０４）。ファイル群コピー部１０６は、リトライカウント値が最大リトライ回数以下であれば、所定のリトライインターバルだけ待つ（ステップＳ７０５）。ここでは、最大リトライ回数は「２」に設定されており、リトライカウント値は「０」から「１」にカウントアップされる（ステップＳ７０３）。リトライインターバルは「２秒」に設定されており、ファイル群コピー部１０６は、２秒待ってから処理を再開する（ステップＳ７０５）。
【００９０】
なお、ファイル群コピー部１０６は、ステップＳ７０３でカウントアップした後のリトライカウント値が最大リトライ回数より大きい場合、ローテーショングループのファイル群のコピーに失敗したことをユーザに通知し、コピー処理を終了する（ステップＳ７０６）。
【００９１】
次に、ファイル群コピー部１０６は、リトライカウント値が最大リトライ回数以下である場合、リトライインターバルだけ待った後に（ステップＳ７０５）、ローテーション検出部１０５にコピー対象のローテーショングループ全体のローテーション検出を要求する（ステップＳ７０１）。ここでは、ローテーショングループ「messages」のローテーション検出要求を行う。
【００９２】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がローテーショングループ全体のローテーション検出要求である場合、ファイル識別情報取得部１０３に対してファイル識別情報取得要求を行う（ステップＳ６０１）。ここでは、ファイル群コピー部１０６からローテーショングループ「messages」のローテーション検出要求を受けて、ファイル識別情報取得部１０３に対してローテーショングループ「messages」のファイル識別情報取得要求を行う。
【００９３】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がローテーショングループのファイル識別情報取得要求である場合、ローテーショングループ管理部１０２から、要求に該当するローテーショングループの情報を取得する（ステップＳ４０１）。ここでは、ローテーショングループ「messages」の情報として、ファイルパス「/var/log/messages」とファイル識別情報「ファイルパス」、「ｉ−ｎｏｄｅ」の組と、ファイルパス「/var/log/messages.?」とファイル識別情報「ｉ−ｎｏｄｅ」の組を取得する。
【００９４】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得すると、このローテーショングループの情報に対応するファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０２）、取得したファイル識別情報をファイル識別情報管理部１０４に格納する（ステップＳ４０３）。ここでは、ファイルパス「/var/log/messages」とｉ−ｎｏｄｅ「51114」の組と、ファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51112」の組と、ファイルパス「/var/log/messages.2」とｉ−ｎｏｄｅ「51133」の組を取得し格納する。
【００９５】
図７では、ローテーション検出部１０５は、ステップＳ６０１の後にステップＳ６０２〜Ｓ６０５の処理を行うことになっているが、前述のとおり、本実施の形態では、ステップＳ６０２〜Ｓ６０５の処理を実施しない。ステップＳ６０２〜Ｓ６０５の処理を実施しない場合、ステップＳ６０６の判断結果を「ローテーションが発生していない」という結果にする。ローテーション検出部１０５は、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【００９６】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７０２）、ローテーションが発生していないことを通知された場合、ファイル識別情報管理部１０４からローテーショングループのファイル識別情報を取得する（ステップＳ７０７）。ここでは、ファイル識別情報として、ファイルパス「/var/log/messages」とｉ−ｎｏｄｅ「51114」の組と、ファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51112」の組と、ファイルパス「/var/log/messages.2」とｉ−ｎｏｄｅ「51133」の組を取得する。
【００９７】
ファイル群コピー部１０６は、ファイル識別情報を取得すると、このファイル識別情報に対するコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、ファイルパス「/var/log/messages」とｉ−ｎｏｄｅ「51114」の組に対するコピー先情報を要求する。
【００９８】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000001」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000002」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【００９９】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「/var/log/messages」のファイルをコピー先ファイルパス「/tmp/copy_tmp/copy_file_000001」の記憶領域にコピーする。また、コピー元のファイルパス「/var/log/messages」、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズを、ファイルパス「/tmp/copy_tmp/copy_file_000001」のファイルと対応付けした形でファイルパス「/tmp/copy_tmp/map_file_000002」の記憶領域に記録する。なお、ここではコピーに成功したものとする。
【０１００】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「/var/log/messages」のファイルのローテーション検出要求を行う。
【０１０１】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「/var/log/messages」のファイル識別情報取得要求を行う。
【０１０２】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「/var/log/messages」に対応するファイル識別情報としてｉ−ｎｏｄｅ「51114」を取得する。
【０１０３】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得したファイルパス「/var/log/messages」とｉ−ｎｏｄｅ「51114」の組と、ステップＳ７０７で取得されたファイルパス「/var/log/messages」とｉ−ｎｏｄｅ「51114」の組が一致するので、ローテーションが発生していないと判断する。
【０１０４】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１０５】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在する場合、このファイルのコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、コピー対象のローテーショングループ「messages」にファイルパス「/var/log/messages.1」のファイルがコピーされずに残っている。そこで、ファイル群コピー部１０６は、ファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51112」の組に対するコピー先情報を要求する。
【０１０６】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000002」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000002」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【０１０７】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「/var/log/messages.1」のファイルをコピー先ファイルパス「/tmp/copy_tmp/copy_file_000002」の記憶領域にコピーする。また、コピー元のファイルパス「/var/log/messages.1」、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時およびファイルサイズを、ファイルパス「/tmp/copy_tmp/copy_file_000002」のファイルと対応付けした形でファイルパス「/tmp/copy_tmp/map_file_000002」の記憶領域に記録する。なお、ここではコピーに成功したものとする。
【０１０８】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「/var/log/messages.1」のファイルのローテーション検出要求を行う。
【０１０９】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「/var/log/messages.1」のファイル識別情報取得要求を行う。
【０１１０】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「/var/log/messages.1」に対応するファイル識別情報としてｉ−ｎｏｄｅ「51112」を取得する。
【０１１１】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得したファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51112」の組と、ステップＳ７０７で取得されたファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51112」の組が一致するので、ローテーションが発生していないと判断する。
【０１１２】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１１３】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在する場合、このファイルのコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、コピー対象のローテーショングループ「messages」にファイルパス「/var/log/messages.2」のファイルがコピーされずに残っている。そこで、ファイル群コピー部１０６は、ファイルパス「/var/log/messages.2」とｉ−ｎｏｄｅ「51133」の組に対するコピー先情報を要求する。
【０１１４】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000003」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000002」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【０１１５】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「/var/log/messages.2」のファイルをコピー先ファイルパス「/tmp/copy_tmp/copy_file_000003」の記憶領域にコピーする。また、コピー元のファイルパス「/var/log/messages.2」、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時およびファイルサイズを、ファイルパス「/tmp/copy_tmp/copy_file_000003」のファイルと対応付けした形でファイルパス「/tmp/copy_tmp/map_file_000002」の記憶領域に記録する。なお、ここではコピーに成功したものとする。
【０１１６】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「/var/log/messages.2」のファイルのローテーション検出要求を行う。
【０１１７】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「/var/log/messages.2」のファイル識別情報取得要求を行う。
【０１１８】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「/var/log/messages.2」に対応するファイル識別情報としてｉ−ｎｏｄｅ「51133」を取得する。
【０１１９】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得したファイルパス「/var/log/messages.2」とｉ−ｎｏｄｅ「51133」の組と、ステップＳ７０７で取得されたファイルパス「/var/log/messages.2」とｉ−ｎｏｄｅ「51133」の組が一致するので、ローテーションが発生していないと判断する。
【０１２０】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１２１】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在しない場合、コピー対象のローテーショングループのファイル群のコピーが完了したことをユーザに通知する（ステップＳ７１４）。ここでは、ローテーショングループ「messages」に次のファイルが無いことを確認して、ファイル群のコピーが完了したことを通知する。以上で、一つのローテーショングループのファイル群のコピーが完了した。
【０１２２】
［第４の実施の形態］
次に、本発明の第４の実施の形態について図面を参照して詳細に説明する。本実施の形態は、第１の実施の形態をより具体的に説明するものである。本実施の形態においても、ファイル管理装置１００ａの構成および動作は第２の実施の形態と同様であるので、図２〜図９を用いて説明する。
【０１２３】
まず、ローテーショングループ作成部１０１は、コピー対象ファイル群１０８をローテーショングループごとにグループ分けするために、ユーザの指定に応じてローテーショングループを作成する（図５ステップＳ２００）。ここでは、名称が「Apache access」というローテーショングループの作成がユーザから指定されたものとする。
【０１２４】
続いて、ローテーショングループ作成部１０１は、ステップＳ２００で作成したローテーショングループに所属するファイルのファイルパスの指定をユーザから受け取る（ステップＳ２０１）。このファイルパスの指定は、複数指定することができ、ワイルドカードや正規表現などを使用することも可能である。ここでは、ファイルパスとして「C:\Apache2.2\logs\access_log」と「C:\Apache2.2\logs\access_log.?」がユーザから指定されたものとする。
【０１２５】
さらに、ローテーショングループ作成部１０１は、ステップＳ２００で作成したローテーショングループに属するファイルのファイル識別情報の指定をユーザから受け取る（ステップＳ２０２）。ファイル識別情報としては、ファイルパス、ファイルサイズ、ファイル作成日時、ファイル更新日時、ｉ−ｎｏｄｅ（オブジェクト識別子）、現在時刻、ファイルのデータなどを使用することが可能である。ここでは、ファイル識別情報として使用する情報の種類として、ファイルパスとｉ−ｎｏｄｅと現在時刻とファイルデータがユーザから指定されたものとする。
【０１２６】
そして、ローテーショングループ作成部１０１は、ユーザからローテーショングループ作成完了の指示を受けると、作成したローテーショングループの情報をローテーション管理部１０２に格納する（ステップＳ２０３）。なお、前記のとおり、ここでは名称が「Apache access」というローテーショングループが１つだけ作成される。
こうして、ローテーショングループが作成されると、ファイル管理装置１００ａは、コピー対象ファイル群１０８のコピー、ローテーションの検出を行うことができる。
【０１２７】
次に、ファイル群コピー部１０６は、ユーザからファイル群のコピー要求を受けると（図８ステップＳ７００）、ローテーション検出部１０５にコピー対象のローテーショングループ全体のローテーション検出を要求する（ステップＳ７０１）。ここでは、ローテーショングループ「Apache access」のコピー要求を受けたものとする。
【０１２８】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がローテーショングループ全体のローテーション検出要求である場合、ファイル識別情報取得部１０３に対してファイル識別情報取得要求を行う（ステップＳ６０１）。ここでは、ファイル群コピー部１０６からローテーショングループ「Apache access」のローテーション検出要求を受けて、ファイル識別情報取得部１０３に対してローテーショングループ「Apache access」のファイル識別情報取得要求を行う。
【０１２９】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がローテーショングループのファイル識別情報取得要求である場合、ローテーショングループ管理部１０２から、要求に該当するローテーショングループの情報を取得する（ステップＳ４０１）。ここでは、ローテーショングループ「Apache access」の情報として、ファイルパス「C:\Apache2.2\logs\access_log」とファイル識別情報「ファイルパス」、「更新日時」、「現在時刻」、「ファイルデータ」の組と、ファイルパス「C:\Apache2.2\logs\access_log.?」とファイル識別情報「ファイルパス」、「更新日時」、「現在時刻」、「ファイルデータ」の組を取得したものとする。
【０１３０】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得すると、このローテーショングループの情報に対応するファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０２）、取得したファイル識別情報をファイル識別情報管理部１０４に格納する（ステップＳ４０３）。ここでは、ファイル識別情報として、ファイルパス「C:\Apache2.2\logs\access_log」と更新日時「2008/01/01 10:00:00.000」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組と、ファイルパス「C:\Apache2.2\logs\access_log.1」と更新日時「2007/12/12 09:59:59.955」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 - 」の組を取得し格納したものとする。現在時刻の取得は更新日時を取得する前に行う。ファイルデータは、ファイルの先頭から予め決められたサイズ、もしくはレコード数分取得する。ここでは、１レコード分取得する。
【０１３１】
図７では、ローテーション検出部１０５は、ステップＳ６０１の後にステップＳ６０２〜Ｓ６０５の処理を行うことになっているが、ステップＳ６０２〜Ｓ６０５の処理を実施しなくても、期待する効果を得ることは可能であるため、本実施の形態では実施しない。ステップＳ６０２〜Ｓ６０５の処理を実施しない場合、ステップＳ６０６の判断結果を「ローテーションが発生していない」という結果にする。ローテーション検出部１０５は、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１３２】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７０２）、ローテーションが発生していないことを通知された場合、ファイル識別情報管理部１０４からローテーショングループのファイル識別情報を取得する（ステップＳ７０７）。ここでは、ファイル識別情報として、ファイルパス「C:\Apache2.2\logs\access_log」と更新日時「2008/01/01 10:00:00.000」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組と、ファイルパス「C:\Apache2.2\logs\access_log.1」と更新日時「2007/12/12 09:59:59.955」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 - 」の組を取得する。
【０１３３】
ファイル群コピー部１０６は、ファイル識別情報を取得すると、このファイル識別情報に対するコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log」と更新日時「2008/01/01 10:00:00.000」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組に対するコピー先情報を要求する。
【０１３４】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000001」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000003」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【０１３５】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、コピーに成功したものとする。
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log」のファイルのローテーション検出要求を行う。
【０１３６】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log」のファイル識別情報取得要求を行う。
【０１３７】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「C:\Apache2.2\logs\access_log」に対応するファイル識別情報として、更新日時「2008/01/01 10:00:02.000」と現在時刻「2008/01/01 10:00:02.222」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」を取得する。
【０１３８】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得したファイルパス「C:\Apache2.2\logs\access_log」と更新日時「2008/01/01 10:00:02.000」と現在時刻「2008/01/01 10:00:02.222」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組と、ステップＳ７０７で取得されたファイルパス「C:\Apache2.2\logs\access_log」と更新日時「2008/01/01 10:00:00.000」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組を比較する。
【０１３９】
ステップＳ６１０で取得した更新日時「2008/01/01 10:00:02.000」とステップＳ７０７で取得された更新日時「2008/01/01 10:00:00.000」は一致しない。しかし、ステップＳ６１０で取得した更新日時「2008/01/01 10:00:02.000」は、ステップＳ７０７で取得された現在時刻「2008/01/01 10:00:01.111」より後の時間で、ステップＳ６１０で取得したファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」とステップＳ７０７で取得されたファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」が一致するため、ローテーションが発生していないと判断する。
【０１４０】
更新日時、現在時刻、ファイルデータを用いたローテーション検出は、以下の要領で行う。
（ａ）ローテーション検出部１０５は、更新日時が変化していない場合、ローテーションが発生していないと判断する。
（ｂ）ローテーション検出部１０５は、更新日時が変化していて、その変化している更新日時が、先にステップＳ７０７で取得された現在時刻より前の時刻である場合は、ローテーションが発生したと判断する。
（ｃ）ローテーション検出部１０５は、更新日時が変化していて、その変化している更新日時が、先にステップＳ７０７で取得された現在時刻と同じ時刻もしくは後の時刻である場合は、ファイルデータを比較して、ファイルデータが一致すれば、ローテーションが発生していないと判断し、ファイルデータが一致しなければ、ローテーションが発生したと判断する。
【０１４１】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１４２】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在する場合、このファイルのコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、コピー対象のローテーショングループ「Apache access」にファイルパス「C:\Apache2.2\logs\access_log.1」のファイルがコピーされずに残っている。そこで、ファイル群コピー部１０６は、ファイルパス「C:\Apache2.2\logs\access_log.1」と更新日時「2007/12/12 09:59:59.955」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 - 」の組に対するコピー先情報を要求する。
【０１４３】
ここで、ローテーションが開始され、ファイルパス「C:\Apache2.2\logs\access_log.1」が「C:\Apache2.2\logs\access_log.2」に書き替えられ、ファイルパス「C:\Apache2.2\logs\access_log」が「C:\Apache2.2\logs\access_log.1」に書き替えられ、新たにファイルパス「C:\Apache2.2\logs\access_log」が生成されたものとする。
【０１４４】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000002」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000003」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【０１４５】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.1」のファイルをコピー先ファイルパス「/tmp/copy_tmp/copy_file_000002」の記憶領域にコピーする。また、コピー元のファイルパス「C:\Apache2.2\logs\access_log.1」、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時およびファイルサイズを、ファイルパス「/tmp/copy_tmp/copy_file_000002」のファイルと対応付けした形でファイルパス「/tmp/copy_tmp/map_file_000003」の記憶領域に記録する。なお、ここではコピーに成功したものとする。
【０１４６】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.1」のファイルのローテーション検出要求を行う。
【０１４７】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.1」のファイル識別情報取得要求を行う。
【０１４８】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「C:\Apache2.2\logs\access_log.1」に対応するファイル識別情報として、更新日時「2008/01/01 10:00:02.000」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組を取得する。
【０１４９】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得したファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51112」の組と、ステップＳ７０７で取得されたファイルパス「/var/log/messages.1」とｉ−ｎｏｄｅ「51112」の組が一致するので、ローテーションが発生していないと判断する。ここでは、ステップＳ６１０で取得したファイルパス「C:\Apache2.2\logs\access_log.1」と更新日時「2008/01/01 10:00:02.000」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組と、ステップＳ７０７で取得されたファイルパス「C:\Apache2.2\logs\access_log.1」と更新日時「2007/12/12 09:59:59.955」と現在時刻「2008/01/01 10:00:01.111」とファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 - 」の組を比較する。
【０１５０】
ステップＳ６１０で取得した更新日時「2008/01/01 10:00:02.000」とステップＳ７０７で取得された更新日時「2007/12/12 09:59:59.955」は一致しない。さらに、ステップＳ６１０で取得した更新日時「2008/01/01 10:00:02.000」はステップＳ７０７で取得された現在時刻「2008/01/01 10:00:01.111」より後の時刻であり、ステップＳ６１０で取得したファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」とステップＳ７０７で取得されたファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 -」が一致しないため、ローテーションが発生したと判断する。
【０１５１】
ローテーション検出部１０５は、ローテーションが発生したと判断すると、ローテーションが発生したことをファイル群コピー部１０６に通知する（ステップＳ６０７）。
【０１５２】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生したことを通知された場合、リトライカウント値をカウントアップし（ステップＳ７０３）、カウントアップした後のリトライカウント値が最大リトライ回数以下であるかどうかを判断する（ステップＳ７０４）。ファイル群コピー部１０６は、リトライカウント値が最大リトライ回数以下であれば、所定のリトライインターバルだけ待つ（ステップＳ７０５）。ここでは、最大リトライ回数は「２」に設定されており、リトライカウント値は「０」から「１」にカウントアップされる（ステップＳ７０３）。リトライインターバルは「２秒」に設定されており、ファイル群コピー部１０６は、２秒待ってから処理を再開する（ステップＳ７０５）。
【０１５３】
なお、ファイル群コピー部１０６は、ステップＳ７０３でカウントアップした後のリトライカウント値が最大リトライ回数より大きい場合、ローテーショングループのファイル群のコピーに失敗したことをユーザに通知し、コピー処理を終了する（ステップＳ７０６）。
【０１５４】
次に、ファイル群コピー部１０６は、リトライカウント値が最大リトライ回数以下である場合、リトライインターバルだけ待った後に（ステップＳ７０５）、ローテーション検出部１０５にコピー対象のローテーショングループ全体のローテーション検出を要求する（ステップＳ７０１）。ここでは、ローテーショングループ「Apache access」のローテーション検出要求を行う。
【０１５５】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がローテーショングループ全体のローテーション検出要求である場合、ファイル識別情報取得部１０３に対してファイル識別情報取得要求を行う（ステップＳ６０１）。ここでは、ファイル群コピー部１０６からローテーショングループ「Apache access」のローテーション検出要求を受けて、ファイル識別情報取得部１０３に対してローテーショングループ「Apache access」のファイル識別情報取得要求を行う。
【０１５６】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がローテーショングループのファイル識別情報取得要求である場合、ローテーショングループ管理部１０２から、要求に該当するローテーショングループの情報を取得する（ステップＳ４０１）。ここでは、ローテーショングループ「Apache access」の情報として、ファイルパス「C:\Apache2.2\logs\access_log」とファイル識別情報「ファイルパス」、「更新日時」、「現在時刻」、「ファイルデータ」の組と、ファイルパス「C:\Apache2.2\logs\access_log.?」とファイル識別情報「ファイルパス」、「更新日時」、「現在時刻」、「ファイルデータ」の組を取得する。
【０１５７】
ファイル識別情報取得部１０３は、ローテーショングループの情報を取得すると、このローテーショングループの情報に対応するファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０２）、取得したファイル識別情報をファイル識別情報管理部１０４に格納する（ステップＳ４０３）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log」と更新日時「2008/01/01 10:00:03.000」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.219 - - [01/Jan/2008:10:00:03 +0900] "GET / HTTP/1.1" 200 - 」の組と、ファイルパス「C:\Apache2.2\logs\access_log.1」と更新日時「2008/01/01 10:00:02.000」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組と、ファイルパス「C:\Apache2.2\logs\access_log.2」と更新日時「2007/12/12 09:59:59.955」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 - 」の組を取得し格納する。
【０１５８】
図７では、ローテーション検出部１０５は、ステップＳ６０１の後にステップＳ６０２〜Ｓ６０５の処理を行うことになっているが、前述のとおり、本実施の形態では、ステップＳ６０２〜Ｓ６０５の処理を実施しない。ステップＳ６０２〜Ｓ６０５の処理を実施しない場合、ステップＳ６０６の判断結果を「ローテーションが発生していない」という結果にする。ローテーション検出部１０５は、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１５９】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７０２）、ローテーションが発生していないことを通知された場合、ファイル識別情報管理部１０４からローテーショングループのファイル識別情報を取得する（ステップＳ７０７）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log」と更新日時「2008/01/01 10:00:03.000」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.219 - - [01/Jan/2008:10:00:03 +0900] "GET / HTTP/1.1" 200 - 」の組と、ファイルパス「C:\Apache2.2\logs\access_log.1」と更新日時「2008/01/01 10:00:02.000」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組と、ファイルパス「C:\Apache2.2\logs\access_log.2」と更新日時「2007/12/12 09:59:59.955」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 - 」の組を取得する。
【０１６０】
ファイル群コピー部１０６は、ファイル識別情報を取得すると、このファイル識別情報に対するコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log」と更新日時「2008/01/01 10:00:03.000」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.219 - - [01/Jan/2008:10:00:03 +0900] "GET / HTTP/1.1" 200 - 」の組に対するコピー先情報を要求する。
【０１６１】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000001」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000003」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【０１６２】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、コピーに成功したものとする。
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log」のファイルのローテーション検出要求を行う。
【０１６３】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log」のファイル識別情報取得要求を行う。
【０１６４】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「C:\Apache2.2\logs\access_log」に対応するファイル識別情報として、更新日時「2008/01/01 10:00:03.000」と現在時刻「2008/01/01 10:00:06.211」とファイルデータ「10.34.75.219 - - [01/Jan/2008:10:00:03 +0900] "GET / HTTP/1.1" 200 - 」の組を取得する。
【０１６５】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得した更新日時「2008/01/01 10:00:03.000」とステップＳ７０７で取得された更新日時「2008/01/01 10:00:03.000」が一致するため、ローテーションは発生していないと判断する。
【０１６６】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１６７】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在する場合、このファイルのコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、コピー対象のローテーショングループ「Apache access」にファイルパス「C:\Apache2.2\logs\access_log.1」のファイルがコピーされずに残っている。そこで、ファイル群コピー部１０６は、ファイルパス「C:\Apache2.2\logs\access_log.1」と更新日時「2008/01/01 10:00:02.000」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組に対するコピー先情報を要求する。
【０１６８】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000002」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000003」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【０１６９】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.1」のファイルをコピー先ファイルパス「/tmp/copy_tmp/copy_file_000002」の記憶領域にコピーする。また、コピー元のファイルパス「C:\Apache2.2\logs\access_log.1」、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時およびファイルサイズを、ファイルパス「/tmp/copy_tmp/copy_file_000002」のファイルと対応付けした形でファイルパス「/tmp/copy_tmp/map_file_000003」の記憶領域に記録する。なお、ここではコピーに成功したものとする。
【０１７０】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.1」のファイルのローテーション検出要求を行う。
【０１７１】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.1」のファイル識別情報取得要求を行う。
【０１７２】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「C:\Apache2.2\logs\access_log.1」に対応するファイル識別情報として、更新日時「2008/01/01 10:00:02.000」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.220 - - [12/Dec/2007:10:00:01 +0900] "GET / HTTP/1.1" 200 44」の組を取得する。
【０１７３】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得した更新日時「2008/01/01 10:00:02.000」とステップＳ７０７で取得された更新日時「2008/01/01 10:00:02.000」が一致するため、ローテーションは発生していないと判断する。
【０１７４】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１７５】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在する場合、このファイルのコピー先情報をファイルコピー先生成部１０７に要求する（ステップＳ７０８）。ここでは、コピー対象のローテーショングループ「Apache access」にファイルパス「C:\Apache2.2\logs\access_log.2」のファイルがコピーされずに残っている。そこで、ファイル群コピー部１０６は、ファイルパス「C:\Apache2.2\logs\access_log.2」と更新日時「2007/12/12 09:59:59.955」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 - 」の組に対するコピー先情報を要求する。
【０１７６】
ファイルコピー先生成部１０７は、ファイル群コピー部１０６の要求からファイル識別情報を抽出し、このファイル識別情報に対するファイルコピー先情報を生成して（図９ステップＳ８００）、生成したファイルコピー先情報をファイル群コピー部１０６に渡す（ステップＳ８０１）。ここでは、ファイルコピー先情報として、コピー先ファイルパス「/tmp/copy_tmp/copy_file_000003」とその他の情報の記録先ファイルパス「/tmp/copy_tmp/map_file_000003」とが生成されるものとする。その他の情報としては、コピー元のファイルパス、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時、ファイルサイズなどが含まれる。これらの情報は、コピー先ファイルと対応付けされた形で記録される。
【０１７７】
ファイル群コピー部１０６は、ファイルコピー先生成部１０７からファイルコピー先情報を取得すると、この情報で指定されるコピー先にコピー対象のファイルをコピーする（図８ステップＳ７０９）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.2」のファイルをコピー先ファイルパス「/tmp/copy_tmp/copy_file_000003」の記憶領域にコピーする。また、コピー元のファイルパス「C:\Apache2.2\logs\access_log.2」、ファイル更新日時、ｉ−ｎｏｄｅ、ファイル生成日時およびファイルサイズを、ファイルパス「/tmp/copy_tmp/copy_file_000003」のファイルと対応付けした形でファイルパス「/tmp/copy_tmp/map_file_000003」の記憶領域に記録する。なお、ここではコピーに成功したものとする。
【０１７８】
ファイル群コピー部１０６は、コピーに成功したかどうかを判断し（ステップＳ７１０）、コピーに成功したと判断すると、ローテーション検出部１０５に対して、コピーに成功したファイルのローテーション検出要求を行う（ステップＳ７１１）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.2」のファイルのローテーション検出要求を行う。
【０１７９】
ローテーション検出部１０５は、ローテーション検出要求を受けたときに（図７ステップＳ６００）、この要求がコピーに成功したファイルのローテーション検出要求である場合、このローテーション検出要求に含まれるファイルパスをファイル識別情報取得部１０３に対して指定してファイル識別情報取得要求を行う（ステップＳ６０９）。ここでは、ファイルパス「C:\Apache2.2\logs\access_log.2」のファイル識別情報取得要求を行う。
【０１８０】
ファイル識別情報取得部１０３は、ローテーション検出部１０５からファイル識別情報取得要求を受けたときに（図６ステップＳ４００）、この要求がファイルパス指定のファイル識別情報取得要求である場合、指定されたファイルパスのファイル識別情報をコピー対象ファイル群１０８から取得し（ステップＳ４０４）、取得したファイル識別情報をローテーション検出部１０５に渡す（ステップＳ４０５）。ここでは、指定されたファイルパス「C:\Apache2.2\logs\access_log.2」に対応するファイル識別情報として、更新日時「2007/12/12 09:59:59.955」と現在時刻「2008/01/01 10:00:05.111」とファイルデータ「10.34.75.221 - - [30/Nov/2007:08:30:11 +0900] "GET / HTTP/1.1" 200 - 」の組を取得する。
【０１８１】
ローテーション検出部１０５は、ファイル識別情報取得部１０３からファイル識別情報を取得すると、このファイル識別情報をステップＳ７０７で取得されたファイル識別情報と比較する（ステップＳ６１０，Ｓ６１１）。ここでは、ステップＳ６１０で取得した更新日時「2007/12/12 09:59:59.955」とステップＳ７０７で取得された更新日時「2007/12/12 09:59:59.955」が一致するため、ローテーションは発生していないと判断する。
【０１８２】
ローテーション検出部１０５は、ローテーションが発生していないと判断すると、ローテーションが発生していないことをファイル群コピー部１０６に通知する（ステップＳ６０８）。
【０１８３】
ファイル群コピー部１０６は、ローテーション検出部１０５から通知を受けたとき（図８ステップＳ７１２）、ローテーションが発生していないことを通知された場合、コピー対象のローテーショングループにコピー処理されていないファイルがあるかをどうかを確認し（ステップＳ７１３）、コピー処理されていないファイルが存在しない場合、コピー対象のローテーショングループのファイル群のコピーが完了したことをユーザに通知する（ステップＳ７１４）。ここでは、ローテーショングループ「Apache access」に次のファイルが無いことを確認して、ファイル群のコピーが完了したことを通知する。以上で、一つのローテーショングループのファイル群のコピーが完了した。
【０１８４】
なお、第１〜第４の実施の形態のファイル管理装置１００，１００ａは、ＣＰＵ、記憶装置および外部とのインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータにおいて、本発明のファイル管理方法を実現させるためのファイル管理プログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカードなどの記録媒体に記録された状態で提供される。ＣＰＵは、記録媒体から読み込んだプログラムを記憶装置に書き込み、プログラムに従って第１〜第４の実施の形態で説明した処理を実行する。
【産業上の利用可能性】
【０１８５】
本発明によれば、例えばログファイルを収集するシステムにおいて、ログファイルを重複、漏れなく収集するための用途に適用できる。
【図面の簡単な説明】
【０１８６】
【図１】本発明の第１の実施の形態に係るファイル管理装置の構成を示すブロック図である。
【図２】本発明の第２の実施の形態に係るファイル管理装置の構成を示すブロック図である。
【図３】本発明の第２の実施の形態に係るローテーショングループ管理部が管理する情報の１例を示す図である。
【図４】本発明の第２の実施の形態に係るファイル識別情報管理部が管理する情報の１例を示す図である。
【図５】本発明の第２の実施の形態に係るローテーショングループ作成部の動作を示すフローチャートである。
【図６】本発明の第２の実施の形態に係るファイル識別情報取得部の動作を示すフローチャートである。
【図７】本発明の第２の実施の形態に係るローテーション検出部の動作を示すフローチャートである。
【図８】本発明の第２の実施の形態に係るファイル群コピー部の動作を示すフローチャートである。
【図９】本発明の第２の実施の形態に係るファイルコピー先生成部の動作を示すフローチャートである。
【符号の説明】
【０１８７】
１００，１００ａ…ファイル管理装置、１０１…ローテーショングループ作成部、１０２…ローテーショングループ管理部、１０３…ファイル識別情報取得部、１０４…ファイル識別情報管理部、１０５…ローテーション検出部、１０６…ファイル群コピー部、１０７…ファイルコピー先生成部、２００…記憶装置、３００…入力装置、４００…表示装置。
【図１】
0004506841.tif 000002
【図２】
0004506841.tif 000003
【図３】
0004506841.tif 000004
【図４】
0004506841.tif 000005
【図５】
0004506841.tif 000006
【図６】
0004506841.tif 000007
【図７】
0004506841.tif 000008
【図８】
0004506841.tif 000009
【図９】
0004506841.tif 000010