JP2015118562A - スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法 - Google Patents

スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法 Download PDF

Info

Publication number
JP2015118562A
JP2015118562A JP2013261806A JP2013261806A JP2015118562A JP 2015118562 A JP2015118562 A JP 2015118562A JP 2013261806 A JP2013261806 A JP 2013261806A JP 2013261806 A JP2013261806 A JP 2013261806A JP 2015118562 A JP2015118562 A JP 2015118562A
Authority
JP
Japan
Prior art keywords
commands
scripts
command
meta
script
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.)
Granted
Application number
JP2013261806A
Other languages
English (en)
Other versions
JP6191440B2 (ja
Inventor
邦昭 嶋田
Kuniaki Shimada
邦昭 嶋田
裕二 和田
Yuji Wada
裕二 和田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013261806A priority Critical patent/JP6191440B2/ja
Priority to US14/557,632 priority patent/US9286036B2/en
Publication of JP2015118562A publication Critical patent/JP2015118562A/ja
Application granted granted Critical
Publication of JP6191440B2 publication Critical patent/JP6191440B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Abstract

【課題】スクリプト間の類否判断の精度を向上させるスクリプト管理技術を提供する。【解決手段】複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出し、複数のスクリプトそれぞれに含まれる複数のメタコマンドの出現数情報と、複数のスクリプトそれぞれの複数のメタコマンドの稀少さとに基づいて、複数のスクリプトのそれぞれに含まれるメタコマンドから特定のメタコマンドを抽出し、複数のスクリプトのそれぞれの相互間で比較し、抽出した特定のメタコマンドの組合せにおいて同一のメタコマンドの組合せが存在する確率を算出し、確率に基づいて、比較したスクリプト同士が類似すると判定することにより、上記課題の解決を図る。【選択図】図1

Description

本発明は、スクリプトの管理技術に関する。
コンピュータを利用した業務処理の運行を自動化し、オペレータの負担を軽減する運用自動化ツールがある。運用自動化ツールの整備や複数人による運用作業の分担化により、仮想マシン(VM)等のリソースの管理は、個別のコマンドを取りまとめたスクリプトや、技術的な詳細内容を理解していなくても設定可能なフローにより行われることが増えてきた。ここで、スクリプトとは、コンピュータが理解できる言語への変換作業を省略して、プログラムの記述や実行を比較的簡易に行うことができる言語の総称である。そのようなフローを用いて運用を行うためには、複数のスクリプトを、対象に応じて、適切な順序で、組み合わせる。しかしながら、スクリプトが大量に存在する場合、適切なスクリプトを選択し、組み合わせるためには、スクリプトの内容に応じて、分類や区別がされている必要がある。
特開2009−75940号公報 特開2001−142738号公報 特開2006−260281号公報
スクリプトの内容に応じて、分類や区別をするためにスクリプト間の類似を判断することが考えられる。スクリプトの類似を判断には、スクリプトを構成するコマンドの異同を判別するために、自然言語処理での重要単語抽出手法であるTF(Term Frequency)−IDF(Inverse Document Frequency)を利用することが考えられる。
しかしながら、自然言語解析による重要単語の抽出手法では、コマンドの異同の判別は適切には行えず、スクリプトの類似も適切に判断できない。
本発明は、一側面として、スクリプト間の類否判断の精度を向上させるスクリプト管理技術を提供する。
本発明の一側面に係るスクリプト管理プログラムは、コンピュータに、以下の処理を実行させる。コンピュータは、複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出する。コンピュータは、複数のスクリプトそれぞれに含まれる複数のメタコマンドの出現数情報と、複数のスクリプトそれぞれの複数のメタコマンドの稀少さとに基づいて、複数のスクリプトのそれぞれに含まれるメタコマンドから特定のメタコマンドを抽出する。コンピュータは、複数のスクリプトのそれぞれの相互間で比較し、抽出した特定のメタコマンドの組合せにおいて同一のメタコマンドの組合せが存在する確率を算出し、確率に基づいて、比較したスクリプト同士が類似すると判定する。
本発明の一側面にかかるスクリプト管理技術によれば、スクリプト間の類否判断の精度を向上させることができる。
本実施形態におけるスクリプト管理装置を示す。 本実施形態(実施例1)におけるスクリプト管理装置の一例を示す。 本実施形態(実施例1)におけるスクリプトDBに格納されているスクリプトの一例を示す。 本実施形態(実施例1)におけるコマンド辞書テーブルの一例を示す。 本実施形態(実施例1)におけるコマンド対応テーブルの一例を示す。 本実施形態(実施例1)におけるスクリプト管理処理のフローの一例を示す。 本実施形態(実施例1)における各スクリプトに存在するメタコマンドの個数の一例を示す。 本実施形態(実施例1)における各スクリプトのメタコマンドのtf−idf値の一例を示す。 本実施形態(実施例1)における要約スクリプトの一例を示す。 本実施形態(実施例1)における要約スクリプト間の類似度の一例を示す。 本実施形態(実施例1)における類似するスクリプトを分類して、ディレクトリに分けて表示した例を示す。 本実施形態(実施例2)におけるサーバのコマンドログのステータス変更と、その要因になったコマンドとを関係付ける処理を説明するための図である。 本実施形態(実施例2)におけるスクリプト管理装置の一例を示す。 本実施形態(実施例2)におけるステータス変更コマンド辞書テーブルの一例を示す。 本実施形態(実施例2)におけるステータス変更コマンド辞書テーブル生成処理のフローの一例を示す。 本実施形態(実施例2)におけるスクリプト管理処理のフローの一例を示す。 本実施形態(実施例2)におけるステータス変更コマンド辞書テーブル33を用いたコマンド分類処理(S32)の詳細フローの一例を示す。 本実施形態におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。
運用自動化ツールでは、運用(リリース管理、変更管理、インシデント管理、監視、障害対処)のための複数のフローを格納するワークフローデータベース、及び複数のスクリプト(例:sh、ruby、perlなど)を格納するスクリプトデータベースがある。以下では、データベースをDBと称する。
運用のスクリプトは、従来一か所に集められて管理されていなかったが、運用自動化の流れで一か所に集められるようになり、必要なスクリプトを探し出すことが困難になった。例えば、保存されているスクリプトの規模は数千オーダであり、その中から必要なスクリプトを探すのは労力を要する。
また、クラウドシステムにおいて、対象(各サーバのハードウェアの種別、オペレーティングシステム(OS)の種別、ハイパーバイザの種別、インストールされているアプリケーションの種類)が異なるごとにスクリプトが存在する。このようにクラウドの複雑化により、スクリプトの組合せパターンが増加している。
そこで、自然言語処理での重要単語抽出手法であるTF(Term Frequency)−IDF(Inverse Document Frequency)を利用することが考えられる。
ところが、TF−IDFを用いることで、スクリプトのうち重要なコマンドだけを抜き出す作業を行う場合、文章中の重要単語は抜き出せるが、コマンドの分類は、たとえば以下の理由により、適切に行われない場合がある。
例えば、コマンドが構文構成を持っており、特定の部分の引数が異なる場合は、そのコマンドは別のコマンドとして認識される必要があるが、TF−IDFではそのような、区別はできない。
また、例えば、ハイパーバイザの違い等による環境の相違が存在する場合に、同じ内容のコマンドであっても、表記が異なる場合が存在する。しかしながら、TF−IDFにおける認識と、表記が異なる場合とを、どのように整合させるかは、一様には決められない。
このように、スクリプトの類似を判断するためには、スクリプトを構成するコマンドの異同を判別する。しかしながら、コマンドには構文が存在するため、自然言語解析による重要単語の抽出手法のみでは、コマンドの異同の判別は適切には行えず、結果としてスクリプトの類似も適切に判断できない。
また、スクリプトの内容には環境に応じて変化する部分も存在し、環境に対応してコマンド内容が変化していても、同じコマンドであると認識されなければ、スクリプトの類似について、正しい判断ができない。
そこでは、本実施形態では、スクリプト間の類否判断の精度を向上させたスクリプト管理技術を提供する。
図1は、本実施形態におけるスクリプト管理装置を示す。スクリプト管理装置1は、第1抽出部2、第2抽出部3、判定部4を含む。
第1抽出部2は、複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出する。第1抽出部2の一例としては、分類部14が挙げられる。ここで、メタコマンドは、コマンド全体の集合に加え、コマンドと引数との組み合わせの集合を含む。
第2抽出部3は、複数のスクリプトそれぞれに含まれる複数のメタコマンドの出現数情報と、複数のスクリプトそれぞれの複数のメタコマンドの稀少さとに基づいて、複数のスクリプトのそれぞれに含まれるメタコマンドから特定のメタコマンドを抽出する。第2抽出部3の一例としては、抽出部15が挙げられる。
判定部4は、複数のスクリプトのそれぞれの相互間で比較し、抽出した特定のメタコマンドの組合せにおいて同一のメタコマンドの組合せが存在する確率を算出し、確率に基づいて、比較したスクリプト同士が類似すると判定する。判定部4の一例としては、算出部16、グループ化部17が挙げられる。
このように構成することにより、スクリプト間の類否判断の精度を向上させることができる。
また、第1抽出部2は、複数のスクリプトのそれぞれについて、コマンドと引数との同一の組が複数組ある場合には、1組のコマンドと引数を同じメタコマンドとして抽出してもよい。
また、第1抽出部2は、複数のスクリプトのそれぞれについて、引数が相互に異なる同じコマンドが複数ある場合、コマンドのそれぞれを、同じメタコマンドとして抽出してもよい。
スクリプト管理装置1は、さらに、動作状況変更情報格納部5を含む。動作状況変更情報格納部5は、コマンドそれぞれの実行による情報処理装置の動作状況の変更に関する動作状況変更情報を格納する。第1抽出部2は、複数のスクリプトのそれぞれについて、引数が相互に異なる同じコマンドが複数ある場合、動作状況変更情報格納部5から、実行した該コマンドそれぞれに対応する動作状況変更情報を取得する。第1抽出部2は、実行したコマンドそれぞれに対応する動作状況変更情報の内容が異なる場合、実行したコマンドそれぞれを、相互に異なるメタコマンドとして抽出してもよい。動作状況変更情報格納部5の一例として、ステータス変更コマンド辞書テーブル33が挙げられる。
また、スクリプト管理装置は、さらに、コマンド対応情報格納部6を含む。コマンド対応情報格納部6は、システム環境に応じて表記方法が相違するコマンド同士を対応付けたコマンド対応情報を格納する。このとき、第1抽出部2は、コマンド対応情報に基づいて、表記方法の異なるコマンドであって同一の意味を示すコマンドを、同じメタコマンドとして分類してもよい。コマンド対応情報格納部6の一例として、コマンド対応テーブル22が挙げられる。
本実施形態の実施例について、以下に、詳述する。
(実施例1)
図2は、本実施形態(実施例1)におけるスクリプト管理装置の一例を示す。スクリプト管理装置11は、制御部12、記憶部19を含む。記憶部19は、スクリプトDB20、コマンド辞書テーブル21、コマンド対応テーブル22、閾値ファイル23を格納する。スクリプトDB20は、運用自動化ツールで用いる複数のスクリプトを格納する。コマンド辞書テーブル21は、コマンドと、そのコマンドで用いる引数を管理する辞書テーブルである。コマンド対応テーブル22は、システム環境に応じてスクリプトで用いるコマンドの表記が異なってはいるが、同一の意味を示すコマンドを対応付けたテーブルである。閾値ファイル22には、後述する処理で用いる閾値が格納されている。
制御部12は、読込部13、分類部14、抽出部15、算出部16、グループ化部17、表示制御部18として機能する。
読込部13は、スクリプトDB20から複数のスクリプトを読み込む。
分類部14は、コマンドまたはコマンドと引数の組の出現頻度に応じて、コマンドを同一のコマンドまたは異なるコマンドと分類する。より具体的には、分類部14は、コマンド抽出処理14a、コマンド分類処理14bを行う。コマンド抽出処理14aでは、分類部14は、コマンド辞書テーブル21を参照して、各スクリプトのコマンドを、引数と共に抽出する。コマンド辞書テーブル21にないコマンドの場合、引数を伴わないコマンドと扱われて、コマンドのみが抽出される。コマンド分類処理14bでは、分類部14は、コマンドの分類を行う。例えば、読み込んだ複数のスクリプトがシステム環境に応じてコマンドの表記が異なっている場合があるので、分類部14は、コマンド対応テーブル22を用いて、同一の意味を示す表記の異なるコマンドを、同一のコマンドとして分類する。また、分類部14は、各スクリプトにおいて、同一のコマンドが複数ある場合、引数の値の異なるコマンドを異なるコマンドとして分類する。
抽出部15は、各スクリプトにおいて、分類部14で分類されたコマンドのうち、重要なコマンドを抽出する。
類似度算出部16は、対比する2つのスクリプトに含まれる重要なコマンドの全ての組み合わせに対する、同一の重要なコマンド同士の組合せの割合を、その2つのスクリプトの類似度(24)として算出する。
グループ化部17は、その類似度が閾値以上のスクリプト同士を類似すると判定し、それらを類似グループ25としてグループ化する。
表示制御部18は、ディスプレイにて、同一ディレクトリに、グループ化したスクリプト(類似グループ25)を表示させるように表示制御を行う。
図3は、本実施形態(実施例1)におけるスクリプトDBに格納されているスクリプトの一例を示す。本実施形態では、スクリプトDB20には、例えば、4つのスクリプト(スクリプトA、スクリプトB、スクリプトC、スクリプトD)が格納されているとする。
「date」は、システム日時を表示させるコマンドである。「ls」は、カレントディレクトリのファイルリスト(ディレクトリも含む)を表示するコマンドである。「service」は、サービスの起動や停止、ステータスの確認を実行する。「cd」は、カレントディレクトリを変更するコマンドである。「pwd」は、カレントディレクトリ名を表示するコマンドである。
コマンドに応じて、コマンド実行時に引数を使用しているが、その引数のうち所定の引数(オプション)を指定することができる。引数は実行に使用されるファイル名、ディレクトリ名や出力されるメッセージ等を指定するのに使用される。一方、オプションは、例えば、コマンドの振る舞い方を指定するために使用される。例えば、「service」コマンドの場合、「service httpd start」の“httpd”は引数、“start”はオプションである。
図4は、本実施形態(実施例1)におけるコマンド辞書テーブルの一例を示す。コマンド辞書テーブル21は、「コマンド」21−1、「第n引数」21−2のデータ項目を含む。「コマンド」21−1には、コマンド名が格納される。「第n引数」21−2には、そのコマンドで指定される引数が第n個まで指定されることを示す。例えば、コマンド「service」について、「第n引数」21−2に「1,2」が格納されているが、これは「service」に第1引数と第2引数とが指定されることを示す。
図5は、本実施形態(実施例1)におけるコマンド対応テーブルの一例を示す。コマンド対応テーブル22は、表記の種類毎に、コマンドが対応付けられて格納されている。「コマンド」22−1の列には、例えば、仮想化環境で用いるハイパーバイザの種類がXenの場合に用いるコマンドが格納されている。「コマンド」22−2の列には、例えば、仮想化環境で用いるハイパーバイザの種類がKVMの場合に用いるコマンドが格納されている。また、Xenの場合に用いるコマンド「xm list」とKVMの場合に用いるコマンド「virsh list」とは表記は異なるが、同じ意味を表すため、対応付けられて格納されている。
図6は、本実施形態(実施例1)におけるスクリプト管理処理のフローの一例を示す。以下では、図7−図11を参照しながら、図6のフローを説明する。
読込部13は、スクリプトDB20から複数のスクリプト(例えば、スクリプトA〜D)を読み出す(S1)。
次に、分類部14は、コマンド辞書テーブル21を参照して、スクリプト内のコマンドと、そのコマンドの引数の組を抽出する。例えば、「service」コマンドの場合、コマンド辞書テーブル21に基づけば、第1引数、第2引数を有するから、分類部14は、「service httpd start」を抽出する(S2)。なお、分類部14は、スクリプト内のコマンドのうち、コマンド辞書テーブル21に存在しないコマンドについては、そのコマンド単体を抽出する。
次に、読み込んだ複数のスクリプトがシステム環境に応じてコマンドの表記が異なっている場合があるので、分類部14は、コマンド対応テーブル22を用いて、同一の意味を示す表記の異なるコマンドを、同一のコマンドとして分類する(S3)。例えば、分類部14は、コマンド対応テーブル22を用いて、同一の意味を示す表記の異なるコマンドを、いずれかの種類の表記に変換して、その表記を統一する。例えば、「virsh list」コマンドを「virsh list」コマンドへ変換する。
次に、分類部14は、同じコマンドで、かつ同じ引数を設定するコマンドが複数ある場合には、その同じ引数を設定するコマンドを独立した1つのコマンドとして分類する(S4)。例えば、“service”コマンドについて、スクリプトA〜Cでは、「service httpd start」が2個、「service ntpd start」が2個ある。この場合、分類部14は、「service httpd start」と「service ntpd start」とをそれぞれ別のコマンドとして分類する。
一方、分類部14は、同じコマンドで、かつ同じ引数を設定するコマンドがない場合には、それらのコマンドを同じコマンドとして分類する(S5)。例えば、“cd”コマンドについて、各スクリプトに「cd /root」が1個、「cd /etc」が1個、「cd home」が1個存在する。この場合、各スクリプトに同じ引数を設定するコマンド「cd」が他にないので、分類部14は、「cd /root」、「cd /etc」、「cd home」をそれぞれ、「cd」コマンドとして分類する。
また、分類部14は、「service」コマンドのように、同一コマンドでもオプションに応じて意味が異なるコマンドを、それぞれ別のコマンドとして分類する(S6)。「service」コマンドのように、同一コマンドでもオプションに応じて意味が異なるコマンドとして、例えば、「service httpd start」(httpdプロセスを開始する)、「service httpd stop」(httpdプロセスを停止する)がある。
次に、抽出部15は、図7に示すように、各スクリプトに存在するコマンド(S4及びS6で分類したコマンド)の数を計測する(S7)。以下では、S4−S6で分類したコマンド、すなわち、コマンド全体の集合に加え、コマンドと引数との組み合わせの集合をメタコマンドという。
次に、抽出部15は、次の式を用いて、スクリプトjにおける各メタコマンドiのtf−idf値(Wi,j)を計算する(S8)。スクリプトA,B、C,Dにおける各メタコマンドのtf−idf値(Wi,j)の計算結果を図8に示す。
Figure 2015118562
tfi,j:スクリプトj内にあるメタコマンドの個数
dfi,j:メタコマンドを含むスクリプト数
N:スクリプトの総数
次に、抽出部15は、閾値ファイル22に格納された閾値T1を読み出し、tf−idf値を計算したメタコマンドから、tf−idf値が閾値T1以上のメタコマンドを重要コマンドとして抽出する(S9)。ここでは、閾値T1を、例えば、0.25とする。すると、各スクリプトから図9に示すメタコマンドが抽出される。また、以下では、重要コマンドのみを残したスクリプトを要約スクリプトと称する。
次に、算出部16は、S9で抽出した重要コマンドに基づいて、要約スクリプトの類似度を計算する(S10)。要約スクリプトの類似度とは、要約スクリプトをX,Yとすると、要約スクリプトXのコマンド数×要約スクリプトYのコマンド数の組み合わせのうち、同一のコマンドが存在する確率をいう。例えば、図9の場合、要約スクリプトA、Bの類似度は、一致する重要コマンド/(要約スクリプトAのコマンド数×要約スクリプトBのコマンド数)=1/2=50(%)である。全てのスクリプトの組合せについて類似度を算出すると、図10の結果が得られる。
次に、グループ化部17は、閾値ファイル22に格納された閾値T2を読み出し、要約スクリプトの類似度が閾値T2以上のスクリプトの組(類似グループ)を抽出する(S11)。ここで、閾値T2を、例えば、0.5とする。すると、図10の場合、類似グループとして、スクリプトAとスクリプトBのグループが得られ、スクリプトCとスクリプトDのグループが得られる。
表示制御部18は、図11に示すように、S11で抽出した類似グループを、同一のディレクトリ内に表示させる(S12)。
(実施例2)
実施例2では、第1の実施例に加えて、さらに、コマンドの使用状況に応じて、コマンドを分類する。
図12は、本実施形態(実施例2)におけるサーバのコマンドログのステータス変更と、その要因になったコマンドとを関係付ける処理を説明するための図である。例えば、スクリプト管理装置11は、運用自動化ツールにより実行されるサーバのログを取得し、サーバのサービス起動状況やポート使用状況等のステータスを監視する。
例えば、ポート使用状況のログに着目すると、図12に示すように、コマンドの実行結果に応じて、ポートの使用状況のステータスが変更される。例えば、コマンド“service httpd start”を実行した場合、ポート番号=80のステータスが変更されている。この場合、スクリプト管理装置11は、コマンド“service httpd start”とポート番号=80がONになったことを示す情報を関係付けて、後述するステータス変更コマンド辞書テーブルに登録する。
また、コマンド“service ntpd start”を実行した場合、ポート番号=81のステータスが変更されている。この場合、スクリプト管理装置11は、コマンド“service ntpd start”とポート番号=81がONになったことを示す情報を関係付けて、後述するステータス変更コマンド辞書テーブルに登録する。
図13は、本実施形態(実施例2)におけるスクリプト管理装置の一例を示す。スクリプト管理装置11は、図2のスクリプト管理装置11に、辞書テーブル生成部31、コマンドログDB32、ステータス変更コマンド辞書テーブル33を追加したものである。実施例1と同じ構成または機能については、実施例1で用いた符号と同じ符号を付し、その説明を省略する。
記憶部19は、スクリプトDB20、コマンド辞書テーブル21、コマンド対応テーブル22、閾値ファイル23、コマンドログDB32、ステータス変更コマンド辞書テーブル33を格納する。コマンドログDB32には、運用自動化ツールにより実行されるサーバのログが格納されている。ステータス変更コマンド辞書テーブル33には、コマンドと、そのコマンドの実行によりステータスが変更された情報が関係付けられて格納されている。
制御部12は、読込部13、分類部14、抽出部15、算出部16、グループ化部17、表示制御部18、辞書テーブル生成部31として機能する。辞書テーブル生成部31は、コマンドログDB32を用いて、ステータス変更コマンド辞書テーブル33を生成する。
図14は、本実施形態(実施例2)におけるステータス変更コマンド辞書テーブルの一例を示す。ステータス変更コマンド辞書テーブル33には、コマンドと、そのコマンドの実行によりステータスが変更された情報が関係付けられて格納されている。
図15は、本実施形態(実施例2)におけるステータス変更コマンド辞書テーブル生成処理のフローの一例を示す。辞書テーブル生成部31は、コマンドログDB32を用いて、サーバのサービス起動状況やポート使用状況等のサーバのステータスを監視する(S21)。
コマンドの実行結果に応じて、ステータスが変更されると、辞書テーブル生成部31は、そのコマンドと、そのコマンドの実行によりステータスが変更された情報を関係付けて、ステータス変更コマンド辞書テーブル33に格納する(S22)。
図16は、本実施形態(実施例2)におけるスクリプト管理処理のフローの一例を示す。図16は、図6のフローに、S31,S32の処理を追加したものである。記憶部19にステータス変更コマンド辞書テーブル33が格納されている場合(S31で「Yes」)、分類部14は、ステータス変更コマンド辞書テーブル33を用いたコマンド分類処理を行う(S32)。S32の詳細については、図17を用いて説明する。なお、実施例2では、S4−S6及びS32で分類したコマンド、すなわち、コマンド全体の集合に加え、コマンドと引数との組み合わせの集合をメタコマンドという。
図17は、本実施形態(実施例2)におけるステータス変更コマンド辞書テーブル33を用いたコマンド分類処理(S32)の詳細フローの一例を示す。分類部14は、S14で分類されなかったコマンド、すなわち、同じ引数を設定する同じコマンドがないコマンドについて、次の処理を行う。
分類部14は、複数の同じコマンドで、かつ同じ引数を設定する同じコマンドがない場合、すなわち、コマンドは同じであるが、その引数が相互に異なる場合、次の処理を行う。すなわち、分類部14は、異なる引数が設定されたそれらの同じコマンドを、ステータス変更コマンド辞書テーブル33に問い合わせる。ステータス変更コマンド辞書テーブル33にその引数が設定されたそのコマンドが登録されている場合、分類部14は、そのステータス変更情報を取得する。分類部14は、異なる引数が設定されたそれらの同じコマンドに対応するステータス変更情報を比較し、ステータスの変更箇所が異なる場合、それらのコマンドを相互に異なるコマンドとして分類する(S32−1)。
S32−1について、例えば、コマンド「service httpd start」とコマンド「service ntpd start」とが1つづつ存在するあるスクリプトがあるとする。この場合、「service httpd start」と「service ntpd start」は、異なる引数が設定された同じコマンドであるといえる。この場合、分類部14は、ステータス変更コマンド辞書テーブル33から「service httpd start」に対応するステータス変更情報と、「service ntpd start」に対応するステータス変更情報とを取得する。ここで、「service httpd start」に対応するステータス変更情報は、ポート番号=81がONになったことを示す情報であるとする。「service ntpd start」に対応するステータス変更情報は、ポート番号=80がONになったことを示す情報であるとする。この場合、2つのステータス変更情報間で、ステータスの変更箇所が異なるので、分類部14は、コマンド「service httpd start」とコマンド「service ntpd start」は相互に異なるコマンドであると分類する。
分類部14は、S32−2で分類処理されなかったコマンド、すなわち、コマンドは同じであるが、その引数が相互に異なる場合であって、ステータス変更コマンド辞書テーブル33に登録されていないコマンドについて、S5の処理を行う(S32−2)。すなわち、分類部14は、コマンドは同じであるが、その引数が相互に異なる場合であって、ステータス変更コマンド辞書テーブル33に登録されていないコマンドを、同じコマンドとして分類する。その後、分類部14は、S6の処理を実行する。
なお、S5及びS32−2では、分類部14は、同じコマンドのうち、同じ引数を設定するコマンドがない場合には、それらのコマンドを同じコマンドとして分類したが、引数が異なる場合にはそれらのコマンドを相互に異なるコマンドとして分類してもよい。
実施例1または2を用いれば、スクリプト間の類否判断の精度を向上することができる。また、ディスプレイ上に、同一のディレクトリに類似グループのスクリプトが表示されるので、目的のスクリプトを容易に見つけることができる。
図18は、本実施形態におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。コンピュータ40は、スクリプト管理装置11として機能する。コンピュータ40は、CPU42、ROM43、RAM46、通信I/F44、記憶装置47、出力I/F41、入力I/F45、読み取り装置48、バス89、出力機器51、入力機器52によって構成されている。
ここで、CPUは、中央演算装置を示す。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。バス49には、CPU42、ROM43、RAM46、通信I/F44、記憶装置47、出力I/F41、入力I/F45、及び読み取り装置48が接続されている。読み取り装置48は、可搬型記録媒体を読み出す装置である。出力機器51は、出力I/F41に接続されている。入力機器52は、入力I/F45に接続にされている。
記憶装置47としては、ハードディスク、フラッシュメモリ、磁気ディスクなど様々な形式の記憶装置を使用することができる。記憶装置47またはROM43には、CPU42を読込部13、分類部14、抽出部15、算出部16、グループ化部17、表示制御部18、辞書テーブル生成部31として機能させるプログラムが格納されている。また、記憶装置47またはROM43には、スクリプトDB20、コマンド辞書テーブル21、コマンド対応テーブル22、閾値ファイル23、コマンドログDB32、ステータス変更コマンド辞書テーブル33が格納されている。RAM46には、類似度23、類似グループが一時的に記憶される。
CPU42は、記憶装置47等に格納した上記実施形態で説明した処理を実現するプログラムを読み出し、当該プログラムを実行する。
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク50、および通信I/F44を介して、例えば記憶装置47に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置48にセットされて、CPU42によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置48によって読み取られる。
また、入力機器52には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力機器51には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク50は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出し、
前記複数のスクリプトそれぞれに含まれる前記複数のメタコマンドの出現数情報と、前記複数のスクリプトそれぞれの前記複数のメタコマンドの稀少さとに基づいて、前記複数のスクリプトのそれぞれに含まれる前記メタコマンドから特定のメタコマンドを抽出し、
前記複数のスクリプトのそれぞれの相互間で比較し、抽出した前記特定のメタコマンドの組合せにおいて同一の前記メタコマンドの組合せが存在する確率を算出し、該確率に基づいて、比較したスクリプト同士が類似すると判定する
処理を実行させることを特徴とするスクリプト管理プログラム。
(付記2)
前記複数のメタコマンドの抽出において、前記複数のスクリプトのそれぞれについて、前記コマンドと前記引数との同一の組が複数組ある場合には、1組の前記コマンドと前記引数を同じメタコマンドとして抽出する
ことを特徴とする付記1に記載のスクリプト管理プログラム。
(付記3)
前記複数のメタコマンドの抽出において、前記複数のスクリプトのそれぞれについて、引数が相互に異なる同じコマンドが複数ある場合、該コマンドのそれぞれを、同じメタコマンドとして抽出する
ことを特徴とする付記1または2に記載のスクリプト管理プログラム。
(付記4)
前記複数のメタコマンドの抽出において、前記複数のスクリプトのそれぞれについて、引数が相互に異なる同じコマンドが複数ある場合、記憶装置から、該コマンドそれぞれの実行による情報処理装置の動作状況の変更に関する動作状況変更情報を取得し、該コマンドそれぞれについて取得した該動作状況変更情報の内容が異なる場合、該コマンドそれぞれを、相互に異なるメタコマンドとして抽出する
ことを特徴とする付記1または2に記載のスクリプト管理プログラム。
(付記5)
前記複数のメタコマンドの抽出において、システム環境に応じて表記方法が相違するコマンド同士を対応付けたコマンド対応情報に基づいて、表記方法の異なるコマンドであって同一の意味を示す該コマンドを、同じメタコマンドとして抽出する
ことを特徴とする付記1〜4のうちいずれか1項に記載のスクリプト管理プログラム。
(付記6)
複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出する第1抽出部と、
前記複数のスクリプトそれぞれに含まれる前記複数のメタコマンドの出現数情報と、前記複数のスクリプトそれぞれの前記複数のメタコマンドの稀少さとに基づいて、前記複数のスクリプトのそれぞれに含まれる前記メタコマンドから特定のメタコマンドを抽出する第2抽出部と、
前記複数のスクリプトのそれぞれの相互間で比較し、抽出した前記特定のメタコマンドの組合せにおいて同一の前記メタコマンドの組合せが存在する確率を算出し、該確率に基づいて、比較したスクリプト同士が類似すると判定する判定部と、
を備えることを特徴とするスクリプト管理装置。
(付記7)
前記第1抽出部は、前記複数のスクリプトのそれぞれについて、前記コマンドと前記引数との同一の組が複数組ある場合には、1組の前記コマンドと前記引数を同じメタコマンドとして抽出する
ことを特徴とする付記6に記載のスクリプト管理装置。
(付記8)
前記第1抽出部は、前記複数のスクリプトのそれぞれについて、引数が相互に異なる同じコマンドが複数ある場合、該コマンドのそれぞれを、同じメタコマンドとして抽出する
ことを特徴とする付記6または7に記載のスクリプト管理装置。
(付記9)
前記スクリプト管理装置は、さらに、
該コマンドそれぞれの実行による情報処理装置の動作状況の変更に関する動作状況変更情報を格納する動作状況変更情報格納部
を備え、
前記第1抽出部は、前記複数のスクリプトのそれぞれについて、引数が相互に異なる同じコマンドが複数ある場合、前記動作状況変更情報格納部から、実行した該コマンドそれぞれに対応する前記動作状況変更情報を取得し、該実行した該コマンドそれぞれに対応する該動作状況変更情報の内容が異なる場合、該実行した該コマンドそれぞれを、相互に異なるメタコマンドとして抽出する
ことを特徴とする付記6または7に記載のスクリプト管理装置。
(付記10)
前記スクリプト管理装置は、さらに、
システム環境に応じて表記方法が相違するコマンド同士を対応付けたコマンド対応情報を格納するコマンド対応情報格納部
を備え、
前記第1抽出部は、前記コマンド対応情報に基づいて、表記方法の異なるコマンドであって同一の意味を示す該コマンドを、同じメタコマンドとして抽出する
ことを特徴とする付記6〜9のうちいずれか1項に記載のスクリプト管理装置。
(付記11)
コンピュータが
複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出し、
前記複数のスクリプトそれぞれに含まれる前記複数のメタコマンドの出現数情報と、前記複数のスクリプトそれぞれの前記複数のメタコマンドの稀少さとに基づいて、前記複数のスクリプトのそれぞれに含まれる前記メタコマンドから特定のメタコマンドを抽出し、
前記複数のスクリプトのそれぞれの相互間で比較し、抽出した前記特定のメタコマンドの組合せにおいて同一の前記メタコマンドの組合せが存在する確率を算出し、該確率に基づいて、比較したスクリプト同士が類似すると判定する
処理を実行することを特徴とするスクリプト管理方法。
1 スクリプト管理装置
2 第1抽出部
3 第2抽出部
4 判定部
5 動作状況変更情報格納部
6 コマンド対応情報格納部
11 スクリプト管理装置
12 制御部
13 読込部
14 分類部
15 抽出部
16 算出部
17 グループ化部
18 表示制御部
19 記憶部
20 スクリプトDB
21 コマンド辞書テーブル
22 コマンド対応テーブル
23 閾値ファイル
31 辞書テーブル生成部
32 コマンドログDB
33 ステータス変更コマンド辞書テーブル

Claims (7)

  1. コンピュータに、
    複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出し、
    前記複数のスクリプトそれぞれに含まれる前記複数のメタコマンドの出現数情報と、前記複数のスクリプトそれぞれの前記複数のメタコマンドの稀少さとに基づいて、前記複数のスクリプトのそれぞれに含まれる前記メタコマンドから特定のメタコマンドを抽出し、
    前記複数のスクリプトのそれぞれの相互間で比較し、抽出した前記特定のメタコマンドの組合せにおいて同一の前記メタコマンドの組合せが存在する確率を算出し、該確率に基づいて、比較したスクリプト同士が類似すると判定する
    処理を実行させることを特徴とするスクリプト管理プログラム。
  2. 前記複数のメタコマンドの抽出において、前記複数のスクリプトのそれぞれについて、前記コマンドと前記引数との同一の組が複数組ある場合には、1組の前記コマンドと前記引数を同じメタコマンドとして抽出する
    ことを特徴とする請求項1に記載のスクリプト管理プログラム。
  3. 前記複数のメタコマンドの抽出において、前記複数のスクリプトのそれぞれについて、引数が相互に異なる同じコマンドが複数ある場合、該コマンドのそれぞれを、同じメタコマンドとして抽出する
    ことを特徴とする請求項1または2に記載のスクリプト管理プログラム。
  4. 前記複数のメタコマンドの抽出において、前記複数のスクリプトのそれぞれについて、引数が相互に異なる同じコマンドが複数ある場合、記憶装置から、該コマンドそれぞれの実行による情報処理装置の動作状況の変更に関する動作状況変更情報を取得し、該コマンドそれぞれについて取得した該動作状況変更情報の内容が異なる場合、該コマンドそれぞれを、相互に異なるメタコマンドとして抽出する
    ことを特徴とする請求項1または2に記載のスクリプト管理プログラム。
  5. 前記複数のメタコマンドの抽出において、システム環境に応じて表記方法が相違するコマンド同士を対応付けたコマンド対応情報に基づいて、表記方法の異なるコマンドであって同一の意味を示す該コマンドを、同じメタコマンドとして抽出する
    ことを特徴とする請求項1〜4のうちいずれか1項に記載のスクリプト管理プログラム。
  6. 複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出する第1抽出部と、
    前記複数のスクリプトそれぞれに含まれる前記複数のメタコマンドの出現数情報と、前記複数のスクリプトそれぞれの前記複数のメタコマンドの稀少さとに基づいて、前記複数のスクリプトのそれぞれに含まれる前記メタコマンドから特定のメタコマンドを抽出する第2抽出部と、
    前記複数のスクリプトのそれぞれの相互間で比較し、抽出した前記特定のメタコマンドの組合せにおいて同一の前記メタコマンドの組合せが存在する確率を算出し、該確率に基づいて、比較したスクリプト同士が類似すると判定する判定部と、
    を備えることを特徴とするスクリプト管理装置。
  7. コンピュータが
    複数のスクリプトに含まれるコマンドから、出現数に基づき、コマンドまたはコマンドと引数との組である複数のメタコマンドを抽出し、
    前記複数のスクリプトそれぞれに含まれる前記複数のメタコマンドの出現数情報と、前記複数のスクリプトそれぞれの前記複数のメタコマンドの稀少さとに基づいて、前記複数のスクリプトのそれぞれに含まれる前記メタコマンドから特定のメタコマンドを抽出し、
    前記複数のスクリプトのそれぞれの相互間で比較し、抽出した前記特定のメタコマンドの組合せにおいて同一の前記メタコマンドの組合せが存在する確率を算出し、該確率に基づいて、比較したスクリプト同士が類似すると判定する
    処理を実行することを特徴とするスクリプト管理方法。
JP2013261806A 2013-12-18 2013-12-18 スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法 Active JP6191440B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013261806A JP6191440B2 (ja) 2013-12-18 2013-12-18 スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法
US14/557,632 US9286036B2 (en) 2013-12-18 2014-12-02 Computer-readable recording medium storing program for managing scripts, script management device, and script management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013261806A JP6191440B2 (ja) 2013-12-18 2013-12-18 スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法

Publications (2)

Publication Number Publication Date
JP2015118562A true JP2015118562A (ja) 2015-06-25
JP6191440B2 JP6191440B2 (ja) 2017-09-06

Family

ID=53368508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013261806A Active JP6191440B2 (ja) 2013-12-18 2013-12-18 スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法

Country Status (2)

Country Link
US (1) US9286036B2 (ja)
JP (1) JP6191440B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018181121A (ja) * 2017-04-18 2018-11-15 富士通株式会社 分析装置、分析プログラム及び分析方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10241775B2 (en) * 2016-01-14 2019-03-26 Ca, Inc. Dynamic release baselines in a continuous delivery environment
US10901768B1 (en) * 2018-03-23 2021-01-26 Amazon Technologies, Inc. Migrating servers from user networks to a user-selected type of hypervisor at a service provider network
US11074043B2 (en) * 2019-07-18 2021-07-27 International Business Machines Corporation Automated script review utilizing crowdsourced inputs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008257335A (ja) * 2007-04-02 2008-10-23 Canon Inc 制御装置、プログラム作成方法、及びプログラム
JP2008305376A (ja) * 2007-05-08 2008-12-18 Systems:Kk プログラムパターン分析装置、パターン出現状況情報生産方法、パターン情報生成装置、およびプログラム
JP2011159112A (ja) * 2010-02-01 2011-08-18 Nec Access Technica Ltd マニュアル修正箇所提示装置、システム、方法およびプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651241B1 (en) 1999-09-29 2003-11-18 Lucent Technologies Inc. Scriptor and interpreter
US20030163448A1 (en) * 2002-02-26 2003-08-28 Sun Microsystems, Inc. Scripting service for translating browser requests into command line interface (CLI) commands
US7305659B2 (en) * 2002-09-03 2007-12-04 Sap Ag Handling parameters in test scripts for computer program applications
US7707634B2 (en) * 2004-01-30 2010-04-27 Microsoft Corporation System and method for detecting malware in executable scripts according to its functionality
JP4984409B2 (ja) 2005-03-17 2012-07-25 富士通株式会社 スクリプト生成プログラムおよびバッチ実行システム
US7861222B2 (en) * 2007-06-13 2010-12-28 Microsoft Corporation Discoscript: a simplified distributed computing scripting language
JP2009075940A (ja) 2007-09-21 2009-04-09 Lac Co Ltd ログ分析装置およびプログラム
US8522203B1 (en) * 2009-08-28 2013-08-27 Adobe Systems Incorporated Dynamic script management
CA2782391A1 (en) * 2012-06-29 2013-12-29 The Governors Of The University Of Alberta Methods for matching xml documents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008257335A (ja) * 2007-04-02 2008-10-23 Canon Inc 制御装置、プログラム作成方法、及びプログラム
JP2008305376A (ja) * 2007-05-08 2008-12-18 Systems:Kk プログラムパターン分析装置、パターン出現状況情報生産方法、パターン情報生成装置、およびプログラム
JP2011159112A (ja) * 2010-02-01 2011-08-18 Nec Access Technica Ltd マニュアル修正箇所提示装置、システム、方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018181121A (ja) * 2017-04-18 2018-11-15 富士通株式会社 分析装置、分析プログラム及び分析方法

Also Published As

Publication number Publication date
US9286036B2 (en) 2016-03-15
US20150169292A1 (en) 2015-06-18
JP6191440B2 (ja) 2017-09-06

Similar Documents

Publication Publication Date Title
US20210342369A1 (en) Method and system for implementing efficient classification and exploration of data
JP5984149B2 (ja) ソフトウェアを更新する装置及び方法
JP2018045403A (ja) 異常検知システム及び異常検知方法
WO2018120721A1 (zh) 用户界面的测试方法、系统、电子装置及计算机可读存储介质
US10108698B2 (en) Common data repository for improving transactional efficiencies of user interactions with a computing device
JP6365195B2 (ja) 命令履歴分析プログラム、命令履歴分析装置、および、命令履歴分析方法
US11042581B2 (en) Unstructured data clustering of information technology service delivery actions
EP3159798B1 (en) Method and system for determining user interface usage
US9940479B2 (en) Identifying and tracking sensitive data
CN109947924B (zh) 对话系统训练数据构建方法、装置、电子设备及存储介质
JP6191440B2 (ja) スクリプト管理プログラム、スクリプト管理装置及びスクリプト管理方法
CN104903865B (zh) 将虚拟机vm映像应用于计算机系统的方法和系统
US10346450B2 (en) Automatic datacenter state summarization
US10257055B2 (en) Search for a ticket relevant to a current ticket
JP6536580B2 (ja) 文集合抽出システム、方法およびプログラム
US9787552B2 (en) Operation process creation program, operation process creation method, and information processing device
US20160026637A1 (en) Search method, search device, and storage medium
JP6496078B2 (ja) 分析支援装置、分析支援方法、および分析支援プログラム
JP6413597B2 (ja) 分析プログラム、分析方法及び分析装置
JPWO2014054233A1 (ja) 情報システムの性能評価装置、方法およびプログラム
US20170351688A1 (en) Generation of classification data used for classifying documents
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof
KR20230119535A (ko) 멀티 프라이빗 클라우드의 로그 관리 시스템 및 방법
CN113934609A (zh) 大数据平台运维方法、装置、计算设备和存储介质
JP2019149068A (ja) コンフィグ比較装置、コンフィグ比較方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170630

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: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R150 Certificate of patent or registration of utility model

Ref document number: 6191440

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150