説明

サーバ環境設定支援システム、サーバ、クライアント、サーバ環境設定支援方法及びプログラム、

【課題】サーバの環境設定作業において、この環境設定作業を行うユーザが任意にロールバックを行えることが容易に実現できるようにする。
【解決手段】コマンドごとに、コマンド実行前の処理を生成する元となる第1のデータと、ロールバック時の処理を生成する元となる第2のデータとを保管する手段を備えるサーバと、ネットワークを介して接続されるクライアントであって、 要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を生成してサーバに行わせる手段と、 要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を生成して保管する手段と、 ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を読み出して、各コマンドの実行順とは逆順に、サーバに行わせる手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバの環境設定を支援する技術に関する。
【背景技術】
【0002】
一般に、コンソールとは、サーバの環境設定などをユーザがCUI(Character User Interface:文字列を打ち込むことでコマンドやスクリプトなどを実行するためのユーザインターフェースのこと)で行なうためのインターフェースである。しかしながら、このコンソールで、スクリプトなどを使いサーバで処理を行うと、その処理内容を把握し難く、ロールバックを行うことは困難である。
【0003】
ここで、コマンドとは、コンピュータを利用したシステム(以後、単にシステムとも云う)に何らかの処理を実行するように導く命令である。また、スクリプトとは、一連のコマンドの並びからなり、システムに何らかの処理を実行させるプログラムである。また、ロールバックとは、システムで何らかの処理が行われたとき、システム内のファイルやディレクトリ、またはシステムで起動しているプログラムなどの状態で、この処理により変更されたものを、処理実行前の状態に戻すことを云う。
【0004】
また一般に、スナップショットとは、その時点の設定を保存し、いつでもその時点の設定に戻れるようにするものである。しかしながら、コマンドごとにスナップショットを毎回行なうのは面倒だし、時間がかかりすぎる。
【0005】
ところで、従来のロールバックでは、一般のデータベースサーバのように、サーバにロールバック機能があり、何らかの障害などがあったときにサーバが自動的にロールバックするようになっているものがある。
【0006】
また特許文献1又は2には、クライアントからのロールバック命令をサーバで受け取り、サーバに保存されているログファイルを元にしてロールバックを行う技術が開示されている。しかしながら、この技術では、サーバにおいてロールバックを行うための機構やロールバック命令を受付けるためのインターフェースなどを用意する必要があり、サーバ側にロールバックのための実装が必要となる。また、クライアントにおいても、ロールバックが行われたかどうかを感知する機構やロールバック命令を発行する仕組が必要となる。
【0007】
また、特許文献3には、ファイル操作に対するエラーがあったときに自動的にロールバックを行う技術が開示されている。しかしながら、この技術では、システム的なエラー、もしくは定義したエラーを検知した場合以外ロールバックできなく、ロールバックするかどうかをユーザが選ぶことができない。
【0008】
また特許文献4には、クライアントに格納されているローカルデータと、当該ローカルデータに対応するサーバのデータとに同一のデータ操作を行なったとき、このデータ操作が正常終了しない場合に、このデータ操作を自動的にロールバックする技術が開示されている。しかしながら、この技術でも、このデータ操作が正常に終了しない場合以外ロールバックできなく、ロールバックするかどうかをユーザが選ぶことができない。
【特許文献1】特開2001−312424号公報
【特許文献2】特開平11−259346号公報
【特許文献3】特公平05−158775号公報
【特許文献4】特開2003−263356号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
本発明は斯かる背景技術に鑑みてなされたもので、サーバの環境設定作業において、この環境設定作業を行うユーザが任意にロールバックを行えることが容易に実現できるようにすることを課題とする。
【課題を解決するための手段】
【0010】
本発明において上記課題を達成するために、まず請求項1の発明では、
サーバと、クライアントとからなり、これらサーバとクライアントとがネットワークを介して接続されるシステムであって、
前記サーバは、
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備え、
前記クライアントは、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける手段と、要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる手段と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する手段と、
処理のロールバックの要求を受付ける手段と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる手段とを備えることを特徴とするサーバ環境設定支援システムとしたものである。
【0011】
また請求項2の発明では、
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備えるサーバであって、
このサーバへネットワークを介して接続されるクライアントが、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける手段と、要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる手段と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する手段と、
処理のロールバックの要求を受付ける手段と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる手段とを備えることを特徴とするサーバとしたものである。
【0012】
また請求項3の発明では、
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備えるサーバへ、ネットワークを介して接続されるクライアントであって、
このクライアントが、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける手段と、要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる手段と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する手段と、
処理のロールバックの要求を受付ける手段と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる手段とを備えることを特徴とするクライアントとしたものである。
【0013】
また請求項4の発明では、
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備えるサーバへ、ネットワークを介して接続されるクライアントが実行する方法であって、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける工程と、
要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる工程と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する工程と、
処理のロールバックの要求を受付ける工程と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる工程とを含むことを特徴とするサーバ環境設定支援方法としたものである。
【0014】
また請求項5の発明では、
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備えるサーバへ、ネットワークを介して接続されるクライアントに、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける工程と、
要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる工程と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する工程と、
処理のロールバックの要求を受付ける工程と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる工程とを実行させることを特徴とするサーバ環境設定支援プログラムとしたものである。
【発明の効果】
【0015】
本発明は、サーバの環境設定作業において、この環境設定作業を行うユーザが任意にロールバックを行えることが容易に実現できるという効果がある。
【発明を実施するための最良の形態】
【0016】
以下に、本発明の最良の一実施形態を説明する。
【0017】
1.構成
本実施形態に係るシステムは、図1に示すように、サーバと、クライアントとを備え、サーバと、クライアントとが、ネットワークを介して接続されるものである。
【0018】
サーバは、環境設定を受けるコンピュータであって、図1に示すように、テンポラリ領域と、ロールバック設定ファイルとを有する。テンポラリ領域は、サーバにおける作業用のディスクスペースであって、バックアップファイル等が置かれる。ロールバック設定ファイルは、サーバのOS(Operating System)の初期インストール後に手動で一つ用意するものである。
【0019】
ロールバック設定ファイルは、ロールバック可能な各コマンドに関する一般的なデータが、「コマンド」、「コマンド実行前の処理」、「ロールバック実行時の処理」という3つの項目に分けて記録されたファイルである。項目「コマンド」は、ロールバック可能なコマンドの一般的な形式を定めるデータである。項目「コマンド実行前処理」は、このコマンドを実行するとき、事前に、この実行により変更されるファイルやディレクトリなどをテンポラリ領域にバックアップしておくために行う処理を一般的に定めるデータであって、この処理を具体的に生成する元となるものである。項目「ロールバック実行時の処理」は、このコマンドのロールバック作業を行うための処理を一般的に定めるデータであって、この処理を具体的に生成する元となるものである。
【0020】
ロールバック設定ファイルの例を、図2に示す。図2のロールバック設定ファイルでは、一つの行に、一つのコマンドに関する一般的なデータが、「コマンド」、「コマンド実行前の処理」、「ロールバック実行時の処理」という項目の順に,カンマ,で区切って並んでいる。ロールバック設定ファイルにおいて、[]に囲まれているデータは、個々のコマンドが実行される際に、個々のコマンドの解釈に基づいて、具体的に定まるものである。図2のロールバック設定ファイルにおいて、各コマンドは、UNIX(登録商標)のコマンドである。図2のロールバック設定ファイルにおいて、各コマンドに関する情報の内、どの情報が、どの項目に属するのかを明示したものを、図3に示す。図2又は3の2〜3行目のように、項目「コマンド実行前の処理」のデータが空白である場合には、コマンドを実行するとき、事前に何もしないことを意味する。
【0021】
クライアントは、ユーザがサーバの環境設定作業を行うのに利用するコンピュータであって、図1に示すように、表示装置と、入力装置と、ローカル作業領域と、実行内容保存ファイルとを有する。表示装置は、データを表示する装置であって、ディスプレイとも呼ばれる。入力装置は、データを入力する装置であって、例えば、キーボード、マウスなどがある。ローカル作業領域は、クライアントにおける作業用のディスクスペースであって、実行内容保存ファイルを格納するのにも用いられる。実行内容保存ファイルは、サーバとの接続時に作成され、終了時に消される。
【0022】
実行内容保存ファイルは、実行された処理に関するデータが、「ID」、「実行したコマンド」、「ロールバック時の処理」という3つの項目に分けて記録されたファイルである。項目「ID」は、実行された処理の識別番号である。項目「実行したコマンド」は、この処理の一部又は全部を実行するために、実行したコマンドである。スクリプトのように、一つの処理を実行するのに、複数のコマンドを実行する場合には、異なる実行したコ
マンドに対して、同一の識別番号が振られる。項目「ロールバック時の処理」は、この実行したコマンドを、ロールバックするときに行う処理を具体的に定めるものである。項目「ロールバック時の処理」のデータは、ロールバック設定ファイルの項目「ロールバック実行時の処理」のデータから生成される。
【0023】
実行内容保存ファイルの例を、図4に示す。図4の実行内容保存ファイルでは、一つの行に、一つの実行された処理に関するデータが、「ID」、「実行されたコマンド」、「ロールバック時の処理」という項目の順に,カンマ,で区切って並んでいる。図4の実行内容保存ファイルにおいて、各コマンドは、UNIX(登録商標)のコマンドである。図4の実行内容保存ファイルにおいて、各実行された処理情報の内、どの情報が、どの項目に属するのかを明示したものを、図5に示す。
【0024】
ここで、クライアントにてコンソールを起動したときに、表示装置が表示するコンソール画面は、図6に示すように、戻るボタン1と、入力文字列表示部2とを有する。入力文字列表示部2は、一般のコンソール画面と同様に、キーボードで打ち込んだ文字列を表示する部分である。戻るボタン1は、このボタンをマウスで押して、実行したコマンドやスクリプトなどのロールバックを命じるためのボタンである。
【0025】
2.処理
以下に、本実施形態に係るシステムで、サーバの環境設定作業を行うために実行される処理の流れの例を、図7のフローチャートに従って説明する。
【0026】
S(STEP)1;コンソールを起動
ユーザは、クライアントにて、コンソールを起動する。
【0027】
S(STEP)2;サーバとの接続開始
クライアントは、サーバとの接続を開始し、ローカル作業領域に実行内容保存ファイルを作成する。尚、作成当時の実行内容保存ファイルの中身は空である。
【0028】
S(STEP)3;ロールバック設定ファイルをローカル作業領域に保存
クライアントは、ロールバック設定ファイルを、ネットワークを介して、サーバから読み出し、ローカル作業領域に保存する。
【0029】
S(STEP)4;コンソールに入力
ユーザは、コンソールに対する入力を行う。
【0030】
S(STEP)5;何を入力?
クライアントは、コンソールに対する入力が、サーバ環境設定のための処理を表す文字列の入力か、又は、ロールバックを表す戻るボタンの押下か、或は、終了コマンド(コンソールを終了させるための処理を表す文字列)の入力かを判断し、
サーバ環境設定のための処理を表す文字列の入力の場合、STEP6に進み、
ロールバックを表す戻るボタンの押下の場合、STEP20に進み、
終了コマンドの入力の場合、STEP25に進む。
【0031】
S(STEP)6;コマンド/スクリプト?
クライアントは、コンソールに入力された文字列が、コマンドを表すものであるか、或は、スクリプトを表すものであるかを、判断し、
コマンドを表すものである場合、STEP7に進み、
スクリプトを表すものである場合、STEP13に進む。
【0032】
S(STEP)7;コマンドを解釈
クライアントは、入力されたコマンドを解釈する。
【0033】
S(STEP)8;ロールバック設定ファイルから行抽出
クライアントは、入力されたコマンドと、ローカル作業領域に保存されているロールバック設定ファイルの項目「コマンド」のデータとを比較し、入力されたコマンドに対応するする行を抽出する。但し、対応するものがない場合、クライアントは、入力されたコマンドを、ロールバックできないものとして扱う。
【0034】
S(STEP)9;コマンド実行前の処理とロールバック時の処理とを生成
クライアントは、入力されたコマンドの解釈に基づいて、入力されたコマンドに対応する行の項目「コマンド実行前の処理」のデータから、コマンド実行前の処理を具体的に生成し、また、入力されたコマンドに対応する行の項目「ロールバック実行時の処理」のデータから、ロールバック時の処理を生成する。但し、項目「コマンド実行前の処理」のデータが空白の場合、クライアントは、コマンド実行前の処理は不必要であると判断して、コマンド実行前の処理を生成しない。
【0035】
S(STEP)10;コマンド実行前の処理実行
クライアントは、コマンド実行前の処理をサーバに実行させ、その結果を受ける。但し、抽出した項目「コマンド実行前の処理」のデータが空白の場合、クライアントは、サーバに何もさせない。
【0036】
S(STEP)11;実行内容保存ファイルの最後に行追加
クライアントは、ローカル作業領域に保存されている実行内容保存ファイルの最後に、以下のデータを有する行を追加する。
【0037】
・項目「ID」の識別番号として、追加前の最終行にある項目「ID」の識別番号に1を加えたもの。
【0038】
・項目「実行したコマンド」のデータとして、入力されたコマンド。
【0039】
・項目「ロールバック時の処理」のデータとして、入力されたコマンドに対応する行の項目「コマンド実行前の処理」のデータから生成したロールバック時の処理。
【0040】
S(STEP)12;コマンド実行
クライアントは、入力されたコマンドをサーバに実行させ、その結果を受けて、STEP4に戻る。
【0041】
S(STEP)13;スクリプトのソースファイル保存
クライアントは、スクリプトのソースファイルをサーバから送ってもらい、このソースファイルをローカル作業領域に保存する。
【0042】
S(STEP)14;ソースファイルからコマンドを抽出して解釈
クライアントは、ローカル作業領域に保存したソースファイルから、実行されるコマンドを抽出して解釈する。
【0043】
S(STEP)15;ロールバック設定ファイルから行抽出
クライアントは、抽出した各コマンドと、ローカル作業領域に保存されているロールバック設定ファイルの項目「コマンド」のデータとを比較し、各コマンドに対応する各行を抽出する。但し、クライアントは、抽出したコマンドの内一致するものがないものを、ロ
ールバックできないものとして扱う。
【0044】
S(STEP)16;コマンド実行前の処理とロールバック時の処理とを生成
クライアントは、抽出したコマンドごとに、各コマンドの解釈に基づいて、各コマンドに対応する行の項目「コマンド実行前の処理」のデータから、コマンド実行前の処理を具体的に生成し、また、各コマンドに対応する行の項目「ロールバック実行時の処理」のデータから、ロールバック時の処理を生成する。但し、項目「コマンド実行前の処理」のデータが空白の場合、クライアントは、コマンド実行前の処理は不必要であると判断して、コマンド実行前の処理を生成しない。
【0045】
S(STEP)17;コマンド実行前の処理実行
クライアントは、抽出したコマンドごとに、コマンド実行前の処理をサーバに実行させ、その結果を受ける。但し、項目「コマンド実行前の処理」のデータが空白の場合、クライアントは、サーバに何もさせない。
【0046】
S(STEP)18;実行内容保存ファイルの最終に行追加
クライアントは、ローカル作業領域に保存されている実行内容保存ファイルの最後に、抽出したコマンドごとに、これらコマンドをサーバに実行させる順に、以下のデータを有する行を追加する。
【0047】
・項目「ID」の識別番号として、最初の行を追加する前の最終行にある項目「ID」の識別番号に1を加えたもの(追加する行全てに同一の識別番号)。
【0048】
・項目「実行したコマンド」のデータとして、抽出したコマンド。
【0049】
・項目「ロールバック時の処理」のデータとして、抽出したコマンドに対応する行の項目「コマンド実行前の処理」のデータから生成したロールバック時の処理。
【0050】
S(STEP)19;スクリプト実行
クライアントは、スクリプトのソースファイルに含まれるコマンドを、順次、サーバに実行させ、その結果を受けて、STEP4に戻る。
【0051】
S(STEP)20;実行内容保存ファイルからデータ抽出
クライアントは、ローカル作業領域に保存されている実行内容保存ファイルを参照して、項目「ID」の識別番号の一番大きい行(最後に実行された処理に対応する行)を抽出する。尚、項目「ID」の識別番号の一番大きい行が複数ある場合、それぞれの行を抽出する。
【0052】
S(STEP)21;ロールバックするか否かを問う
クライアントは、抽出した行に基づいて、実行したコマンドの内容と、そのコマンドのロールバックを行う場合にはYを入力し、他方、そのコマンドのロールバックを行わない場合にはNを入力することをユーザに促す指示とを、コンソール画面に表示する。
【0053】
S(STEP)22;Y/N?
ユーザは、Y又はNの入力を行い、
Yを入力した場合、STEP23に進み、
Nを入力した場合、STEP4に戻る。
【0054】
S(STEP)23;ロールバックを実行
クライアントは、抽出した行の項目「ロールバック時の処理」のデータに基づいて、コ
マンドをロールバックするための処理をサーバに実行させる。尚、項目「ID」の識別番号の一番大きい行が複数ある場合、最終行から初めて順に前の行へ、それぞれの行の項目「ロールバック時の処理」のデータに基づいて、コマンドをロールバックするための処理をサーバに実行させる。
【0055】
S(STEP)24;実行内容保存ファイルから行削除
クライアントは、実行内容保存ファイルから、ロールバックしたコマンドに対応する行を削除し、STEP4に戻る。
【0056】
S(STEP)25;テンポラリ領域をクリア
クライアントは、テンポラリ領域にあるファイルやディレクトリを全てサーバに消去させる。
【0057】
S(STEP)26;ローカル作業領域をクリア
クライアントは、ローカル作業領域にあるファイルやディレクトリを全て削除する。
【0058】
S(STEP)27;サーバとの接続切断
クライアントは、サーバとの接続を切断する。
【0059】
S(STEP)28;コンソール終了
クライアントは、コンソールを終了する。
【0060】
以下に、コマンド(rm hoge)を実行させ、このコマンドをロールバックする場合に、本実施形態のシステムで実行される処理の流れの例を、図8のシーケンス図に従って説明する。尚、ロールバック設定ファイルは、図2に示すものであるとし、また、実行内容保存ファイルの最終行にある項目「ID」の識別番号が、51であるとする。
【0061】
(1)コマンドの入力
ユーザは、コンソールに、コマンドとして、rm hoge と入力する。この入力がなされたときのコンソール画面を、図9に示す。
【0062】
(2)コマンドの解釈
クライアントは、コンソールに入力された rm hoge を、hogeという名称のファイルの削除をサーバに行わせるrmコマンドであると解釈する。
【0063】
(3)ロールバック設定ファイルから行抽出
クライアントは、ロールバック設定ファイルから、rmコマンドの行、
rm[name],cp[original_sapce]/[name] /tmp/[ID]_[name],mv /tmp/[ID]_[name] [original_space]/[name]
を抽出する。
【0064】
(4)コマンド実行前の処理とロールバック時の処理とを生成
クライアントは、抽出した行において、[name]=hoge、[original_sapce]=/var/(hogeという名称のファイルが置かれることになるディレクトリ)、[ID]=52(実行内容保存ファイルの最終行にある項目「ID」の識別番号+1)として、抽出した行の項目「コマンド実行前の処理」のデータから、コマンド実行前の処理(cp /var/hoge /tmp/52_hoge)を生成し、また、抽出した行の項目「ロールバック実行時の処理」のデータから、ロールバック時の処理(mv /tmp/52_hoge /var/hoge)を生成する。
【0065】
(5)コマンド実行前の処理の実行
クライアントは、コマンド実行前の処理(cp /var/hoge /tmp/52_hoge)を、サーバに実行させる。この実行によって、hogeという名称のファイルが、テンポラリ領域に、52_hogeという名称でコピーされる。
【0066】
(6)結果の送信
サーバは、コマンド実行前の処理を実行した結果を、クライアントに送信する。
【0067】
(7)実行内容保存ファイルの末尾に行追加
クライアントは、実行内容保存ファイルの末尾に、項目「ID」、項目「実行したコマンド」、項目「ロールバック時の処理」の順に,カンマ,で区切って、
52,rm hoge,mv /tmp/52_hoge var/hoge
という行を追加する。ここで、52は、この追加前の実行内容保存ファイルの最終行にある項目「ID」の識別番号(51)に、1を加えたものである。
【0068】
(8)コマンドの実行
クライアントは、コマンド(rm hoge)を、サーバに実行させる。この実行によって、hogeという名称のファイルが、削除される。
【0069】
(9)結果の送信
サーバは、コマンドを実行した結果を、クライアントに送信する。
【0070】
(10)ロールバックの入力
ユーザは、戻るボタンをマウスで押す。
【0071】
(11)実行内容保存ファイルから行抽出
クライアントは、実行内容保存ファイルから、項目「ID」の識別番号が最大の行、
52,rm hoge,mv /tmp/52_hoge var/hoge
を抽出する。
【0072】
(12)ロールバックすることを確認
クライアントは、図10に示すように、rm hoge をロールバックする場合にはYを入力し、他方、ロールバックしない場合にはNを入力することをユーザに促す指示をコンソール画面に表示して、Yが入力されたことを確認する。
【0073】
(13)ロールバックを実行
クライアントは、ロールバック時の処理(mv /tmp/52_hoge var/hoge)を、サーバに実行させる。この実行によって、テンポラリ領域に52_hogeという名称で保存されているファイルが、hogeという名称のファイルが置かれていたディレクトリに、hogeという名称で移動する。
【0074】
(14)結果の送信
サーバは、ロールバック時の処理を実行した結果を、クライアントに送信する。
【0075】
(15)実行内容保存ファイルから行削除
クライアントは、実行内容保存ファイルからロールバックしたrmコマンドに係る、識別番号52の行、
52,rm hoge,mv /tmp/52_hoge var/hoge
を削除する。
【0076】
以下に、図11に示すソースファイルに相当するスクリプトを実行させ、このスクリプトをロールバックする場合に、本実施形態のシステムで実行される処理の流れの例を、図12のシーケンス図に従って説明する。尚、ロールバック設定ファイルは、図2に示すものであるとし、また、実行内容保存ファイルの最終行にある項目「ID」の識別番号が、51であるとする。
【0077】
(1)スクリプトを表す文字列の入力
ユーザは、コンソールに、図11に示すソースファイルに相当するスクリプトを表す文字列を入力する。
【0078】
(2)スクリプトのソースファイルの送信依頼
クライアントは、サーバに対して、コンソールに入力された文字列が表すスクリプトのソースファイルを、送信するよう依頼する。
【0079】
(3)スクリプトのソースファイルの送信
サーバは、依頼されたスクリプトのソースファイルを、クライアントに送信する。
【0080】
(4)コマンドを抽出して解釈
クライアントは、スクリプトのソースファイルから、コマンドとして、順に、mkdir dir1 と、touch dir1/txt1 と、mv dir1 dir2とを抽出し、
mkdir dir1 は、dir1という名称のディレクトリの作成をサーバに行わせるmkdirコマンドであり、
touch dir1/txt1 は、dir1という名称のディレクトリに、txt1という名称のファイルの作成をサーバに行わせるtouchコマンドであり、
mv dir1 dir2 は、dir1という名称のディレクトリを、dir2という名称のディレクトリに変更するmvコマンドであると解釈する。
【0081】
(5)ロールバック設定ファイルから行抽出
クライアントは、ロールバック設定ファイルから、mkdirコマンドの行、
mkdir [dir],,rmdir [original_space]/[dir]
と、touchコマンドの行、
touch [name],,rm [original_space]/[name]
と、mvコマンドの行、
mv [name1] [name2],,mv [original_space]/[name2] [original_space]/[name1]
とを抽出する。
【0082】
(6)ロールバック時の処理を生成
クライアントは、抽出した各行の項目「コマンド実行前の処理」のデータが空白なので、mkdirコマンド、touchコマンド、mvコマンド、それぞれについて、コマンド実行前の処理は必要ないと判断し、また、抽出した各行において、[dir]=dir1、[original_space]=/var/(dir1という名称のディレクトリが置かれることになるディレクトリ)、[name]=dir1/txt1、[name1]=dir1、[name2]=dir2として、抽出した各行の項目「ロールバック実行時の処理」のデータから、mkdirコマンド、touchコマンド、mvコマンド、それぞれについて、ロールバック時の処理として、rmdir /var/dir1
、rm /var/dir1/txt1、mv /var/dir2 /var/dir1 を生成する。
【0083】
(7)実行内容保存ファイルの末尾に行を追加
クライアントは、実行内容保存ファイルの末尾に、項目「ID」、項目「実行したコマンド」、項目「ロールバック時の処理」の順に、カンマ,で区切って、
52,mkdir dir1,rmdir /var/dir1
52,touch dir1/txt1,rm /var/dir1/txt1
52,mv dir1 dir2,mv /var/dir2 /var/dir1
という、それぞれ、mkdirコマンド、touchコマンド、mvコマンドに対応する3つの行を、実行順に追加する。ここで、52は、この追加前の実行内容保存ファイルの最終行にある項目「ID」の識別番号(51)に、1を加えたものである。
【0084】
(8)スクリプトの実行
クライアントは、スクリプトの処理として、mkdir dir1、touch dir1/txt1、mv dir1 dir2を順にサーバに実行させる。
【0085】
(9)結果の送信
サーバは、スクリプトを実行した結果を、クライアントに送信する。
【0086】
(10)ロールバックの入力
ユーザは、戻るボタンをマウスで押す。
【0087】
(11)実行内容保存ファイルから行抽出
クライアントは、実行内容保存ファイルから、項目「ID」の識別番号が最大の行、
52,mkdir dir1,rmdir /var/dir1
52,touch dir1/txt1,rm /var/dir1/txt1
52,mv dir1 dir2,mv /var/dir2 /var/dir1
を抽出する。
【0088】
(12)ロールバックすることを確認
クライアントは、図13に示すように、スクリプトをロールバックする場合にはYを入力し、他方、ロールバックしない場合にはNを入力することをユーザに促す指示をコンソール画面に表示して、Yが入力されたことを確認する。
【0089】
(13)ロールバックを実行
クライアントは、ロールバック時の処理として、
mv /var/dir2 /var/dir1、
rm /var/dir1/txt1、
rmdir /var/dir1
を、この順にサーバに実行させる。
【0090】
(14)結果の送信
サーバは、ロールバック時の処理を実行した結果を、クライアントに送信する。
【0091】
(15)実行内容保存ファイルから行削除
クライアントは、実行内容保存ファイルからロールバックしたスクリプトに係る、識別番号52の各行、
52,mkdir dir1,rmdir /var/dir1
52,touch dir1/txt1,rm /var/dir1/txt1
52,mv dir1 dir2,mv /var/dir2 /var/dir1
を削除する。
【図面の簡単な説明】
【0092】
【図1】本実施形態に係るシステムの構成例を示すブロック図。
【図2】ロールバック設定ファイルの例を示す図。
【図3】図2のロールバック設定ファイルにおいて、各コマンドに関する情報の内、どの情報が、どの項目に属するのかを明示した図。
【図4】実行内容保存ファイルの例を示す図。
【図5】図4の実行内容保存ファイルにおいて、各実行された処理に関する情報の内、どの情報が、どの項目に属するのかを明示した図。
【図6】コンソール画面を例示する図。
【図7】本実施形態に係るシステムで、サーバの環境設定作業を行うために実行される処理の流れの例を示すフローチャート。
【図8】コマンド(rm hoge)を実行させ、このコマンドをロールバックする場合に、本実施形態のシステムで実行される処理の流れの例を示すシーケンス図。
【図9】コマンドを入力したコンソール画面の例を示す図。
【図10】コマンドのロールバックをユーザに確認するコンソール画面の例を示す図。
【図11】スクリプトのソースファイルの例を示す図。
【図12】図11に示すソースファイルに相当するスクリプトを実行させ、このスクリプトをロールバックする場合に、本実施形態のシステムで実行される処理の流れの例を示すシーケンス図。
【図13】スクリプトのロールバックをユーザに確認するコンソール画面の例を示す図。
【符号の説明】
【0093】
1…戻るボタン
2…入力文字列表示部

【特許請求の範囲】
【請求項1】
サーバと、クライアントとからなり、これらサーバとクライアントとがネットワークを介して接続されるシステムであって、
前記サーバは、
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備え、
前記クライアントは、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける手段と、要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる手段と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する手段と、
処理のロールバックの要求を受付ける手段と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる手段とを備えることを特徴とするサーバ環境設定支援システム。
【請求項2】
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備えるサーバであって、
このサーバへネットワークを介して接続されるクライアントが、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける手段と、要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる手段と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する手段と、
処理のロールバックの要求を受付ける手段と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる手段とを備えることを特徴とするサーバ。
【請求項3】
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備えるサーバへ、ネットワークを介して接続されるクライアントであって、
このクライアントが、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける手段と、要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる手段と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する手段と、
処理のロールバックの要求を受付ける手段と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる手段とを備えることを特徴とするクライアント。
【請求項4】
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備えるサーバへ、ネットワークを介して接続されるクライアントが実行する方法であって、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける工程と、
要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる工程と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する工程と、
処理のロールバックの要求を受付ける工程と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる工程を含むことを特徴とするサーバ環境設定支援方法。
【請求項5】
コマンドごとに、コマンド実行前の処理を定めるデータを生成する元となる第1のデータと、ロールバック時の処理を定めるデータを生成する元となる第2のデータとを保管する手段を備えるサーバへ、ネットワークを介して接続されるクライアントに、
一つ又は複数のコマンドにより導かれるサーバに対する処理の要求を受付ける工程と、
要求された処理を導く各コマンドをサーバに実行させる前に、第1のデータから、コマンド実行前の処理を定めるデータを生成して、このコマンド実行前の処理をサーバに行わせる工程と、
要求された処理を導く各コマンドをサーバに実行させる際に、第2のデータから、ロールバック時の処理を定めるデータを生成して保管する工程と、
処理のロールバックの要求を受付ける工程と、
ロールバックが要求された処理を導く各コマンドについて、保管しているロールバック時の処理を定めるデータを読み出して、各コマンドの実行順とは逆順に、このロールバック時の処理をサーバに行わせる工程とを実行させることを特徴とするサーバ環境設定支援プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate