ソフトウェア使用率監視機能レポートエントリは、以下の方法で作成できます。
コマンド行インタフェースから
シェルスクリプトから
アプリケーションから
どの方法でも使われるソフトウェア使用率監視機能の基本的なコンポーネントは同じです。ただし、基本的なコンポーネントへのアクセス方法は異なります。以下の節では、それぞれの方法で採用されている方式と手順について説明します。
コマンド行インタフェースを使う方法は、ソフトウェア使用率監視機能を実行するための最も簡単な方法と言えます。ただし、この方法ではアプリケーションとソフトウェア使用率監視機能を毎回手動で実行しなければならないので、最も面倒な方法ともいえます。
以下の swu_rpt コマンド行のいずれかを使って使用率レポートを作成します。
関連プログラムがインストールされたことを示すソフトウェア使用率レポートエントリを作成するには、-i オプションを使用します。
$ swu_rpt -p product-name [-I identifier] [-s server] ¥ [-a attr1=val1, attr2=val2,...] -i |
関連プログラムが開始したことを示すソフトウェア使用率レポートエントリを作成するには、-b オプションを使用します。
$ swu_rpt -p product-name [-I identifier] [-s server] ¥ [-a attr1=val1, attr2=val2,...] -b |
関連プログラムが終了したことを示すソフトウェア使用率レポートエントリを作成するには、-e オプションを使用します。
$ swu_rpt -p product-name [-I identifier] [-s server] ¥ [-a attr1=val1, attr2=val2,...] -e |
関連プログラムの開始と終了の両方を示すソフトウェア使用率レポートエントリ (Begin エントリと End エントリ) を作成するには、-c オプションを使用します。
$ swu_rpt -p product-name [-I identifier] [-s server] ¥ [-a attr1=val1, attr2=val2,...] -c command |
上記のコマンドで、各オプションは次の意味を持ちます。
-p product-name |
ソフトウェア使用率を記録する製品名を示します。このオプションは必ず指定しなければなりません。 |
-I identifier |
使用率記録の ID 番号を指定します。指定しない場合、swu_rpt は自身の ID 番号を提供します。 |
-s server |
使用率の記録を送る先のソフトウェア使用率監視サーバーを指定します。デフォルトは、swusage_host に別名設定されているホストです。 |
-a attr1=val1, attr2=val2,... |
ユーザーはソフトウェア使用率情報に説明を付け加えることができます。 |
-b |
開始 (Begin) エントリが記録されます。 |
-e |
終了 (End) エントリが記録されます。 |
-i |
インストールエントリが記録されます。 |
-c command |
実行するコマンドを指定します。このコマンド実行の前後にそれぞれ開始 (Begin) と終了 (End) エントリが記録されます。 |
コマンド行からソフトウェア使用率監視コマンドを実行する例を示します。このコマンドでは、スクリプト maker を使って FrameMaker を起動し、ソフトウェア使用率監視コマンドの swu_rpt を使ってアプリケーションのログを記録します。
$ swu_rpt -p FrameMaker -I 29581 -s sherlock -c maker |
この例では、-c オプションが使われている (-c オプションは Begin エントリと End エントリを作成します) ので、次のような 2 つのソフトウェア使用率レポートエントリが作成されます。
レポートエントリ 1 |
|
レポートエントリ 2 |
|
---|---|---|---|
Type |
Admin/Usage |
Type |
Admin/Usage |
Product |
FrameMaker |
Product |
FrameMaker |
SubType |
Begin |
SubType |
End |
Time |
8444845890 |
Time |
8444845957 |
UserID |
30581 |
UserID |
30581 |
User |
jod |
User |
jod |
Host |
buck |
Host |
buck |
Domain |
forest.field.com |
Domain |
forest.field.com |
HostID |
1234567890 |
HostID |
1234567890 |
Locale |
C |
Locale |
C |
Version |
1 |
Version |
1 |
Usage Server |
sherlock |
Usage Server |
sherlock |
RecordID |
29581 |
RecordID |
29581 |
ソフトウェア使用率を監視するもう 1 つの方法は、プログラムを起動するシェルスクリプトを作成する方法です。この方法を使うと、ユーザーがシェルスクリプトを実行するたびにログに記録されます。シェルスクリプトを変更する方法は 2 つあります。1 つはシェルスクリプトラッパーを作成する方法で、もう 1 つは既存のシェルスクリプトプログラムのスクリプトを変更する方法です。どちらの方法でも、Begin エントリと End エントリが作成されます。
シェルスクリプトラッパーを使用する場合は、ソフトウェア使用率監視コマンド行を実行可能プログラムの前後に入れます。たとえば、FrameMaker プログラムを開始するスクリプトがあるとします。このスクリプト maker の中で、実行可能プログラムを取り囲むようにソフトウェア使用率監視コマンドを配置できます。これにより、スクリプトが開始された時にもスクリプトが終了する時にも、ソフトウェア使用率監視コマンドが実行されます。
コマンドをバックグラウンドで実行している場合、このシェルスクリプトラッパーの方法は適していないことがあります。コマンドを実行した直後に End エントリが作成されるため、記録される使用時間は必ずしも正確ではないためです。
シェルスクリプトの実行可能コマンド行を変更する場合は、スクリプトの 1 つのコマンド行を指定したプログラムを開始し、ソフトウェア使用率監視用の Begin エントリと End エントリを作成します。
以下に各ソフトウェア使用率監視シェルスクリプトを実行するための手順を説明します。
エディタを使って、ソフトウェア使用率監視コマンドを追加するシェルスクリプトを開きます。
実行可能プログラムのコマンド行の前に、以下の swu_rpt コマンド行を追加します。
swu_rpt -p product-name [-I identifier] [-s server] [-a attr1=val1, attr2=val2,...] -b |
このコマンドでは、次のオプションが使われます。
-p product-name |
ソフトウェア使用率を記録する製品名を示します。このオプションは必ず指定しなければなりません。 |
-I identifier |
使用率記録の ID 番号を指定します。指定しない場合、swu_rpt は自身の ID 番号を提供します。 |
-s server |
使用率の記録を送る先のソフトウェア使用率監視サーバーを指定します。デフォルトは、swusage_host に別名設定されているホストです。 |
-a attr1=val1, attr2=val2,... |
ユーザーはソフトウェア使用率情報に説明を付け加えることができます。 |
-b |
開始 (Begin) エントリが記録されます。 |
実行可能プログラムのコマンド行の後に、次の swu_rpt コマンドを追加します。
swu_rpt -p product-name [-I identifier] [-s server] [-a attr1=val1, attr2=val2,...] -e |
このコマンドでは、次のオプションが使われます。
-p product-name |
ソフトウェア使用率を記録する製品名を示します。このオプションは必ず指定しなければなりません。 |
-I identifier |
使用率記録の ID 番号を指定します。指定しない場合、swu_rpt は自身の ID 番号を提供します。 |
-s server |
使用率の記録を送る先のソフトウェア使用率監視サーバーを指定します。デフォルトは、swusage_host に別名設定されているホストです。 |
-a attr1=val1, attr2=val2,... |
ユーザーはソフトウェア使用率情報に説明を付け加えることができます。 |
-e |
終了 (End) エントリが記録されます。 |
変更を保存して、スクリプトを終了します。スクリプトが実行可能であることを確認します。
dir_script というシェルスクリプトに追加されたソフトウェア使用率監視コマンドの例を示します。このスクリプトは、スクリプトが呼び出されたディレクトリ、そのディレクトリの中のファイル、そして現在の日付と時間をリストします。
swu_rpt -p dir_script -I 295833 -s sherlock -a ¥ "Command1=pwd,Command2=ls,Options=-la,Command3=date" -b pwd ls -la date swu_rpt -p dir_script -I 295833 -s sherlock -a ¥ "Command1=pwd,Command2=ls,Command3=date" -e |
この例では、次のような 2 つのソフトウェア使用率レポートエントリが作成されます。
レポートエントリ 1 |
|
レポートエントリ 2 |
|
---|---|---|---|
Type |
Admin/Usage |
Type |
Admin/Usage |
Product |
dir_script |
Product |
dir_script |
SubType |
begin |
SubType |
end |
Time |
8444845890 |
Time |
8444845892 |
UserID |
30581 |
UserID |
30581 |
User |
jod |
User |
jod |
Host |
buck |
Host |
buck |
Domain |
forest.field.com |
Domain |
forest.field.com |
HostID |
1234567890 |
HostID |
1234567890 |
Locale |
C |
Locale |
C |
Version |
1 |
Version |
1 |
Usage Server |
sherlock |
Usage Server |
sherlock |
RecordID |
295833 |
RecordID |
295833 |
C_Command1 |
pwd |
C_Command1 |
pwd |
C_Command2 |
ls |
C_Command2 |
ls |
C_Options |
-la |
C_Command3 |
date |
C_Command3 |
date |
|
|
エディタで、ソフトウェア使用率監視コマンドを追加する先のシェルスクリプトを開きます。
プログラムを呼び出すコマンド行を検索します。
次の引き数をプログラムのコマンド行に追加します。
swu_rpt -p product-name [-I identifier] [-s server] [-a attr1=val1, attr2=val2,...] ¥ -c command |
このコマンドでは、次のオプションが使われます。
-p product-name |
ソフトウェア使用率を記録する製品名を示します。このオプションは必ず指定しなければなりません。 |
-I identifier |
使用率記録の ID 番号を指定します。指定しない場合、swu_rpt は自身の ID 番号を提供します。 |
-s server |
使用率の記録を送る先のソフトウェア使用率監視サーバーを指定します。デフォルトは、swusage_host に別名設定されているホストです。 |
-a attr1=val1, attr2=val2,... |
ユーザーはソフトウェア使用率情報に説明を付け加えることができます。 |
-c command |
プログラムの実行コマンド名を指定します。 |
変更を保存して、スクリプトを終了します。スクリプトが実行可能であることを確認します。
FrameMaker を実行するコマンド行にソフトウェア使用率監視コマンドを追加する例を示します。
swu_rpt -p Frame -I 295836 -s sherlock -a ¥ "Command=maker,Version=4.0" -c maker |
この例では、次のようなソフトウェア使用レポートエントリが使われます。
レポートエントリ 1 |
|
レポートエントリ 2 |
|
---|---|---|---|
Type |
Admin/Usage |
Type |
Admin/Usage |
Product |
Frame |
Product |
Frame |
SubType |
Begin |
SubType |
End |
Time |
814824487 |
Time |
8148244920 |
UserID |
30581 |
UserID |
30581 |
User |
jod |
User |
jod |
Host |
buck |
Host |
buck |
Domain |
forest.field.com |
Domain |
forest.field.com |
HostID |
1234567890 |
HostID |
1234567890 |
Locale |
C |
Locale |
C |
Version |
1 |
Version |
1 |
Usage Server |
sherlock |
Usage Server |
sherlock |
RecordID |
295836 |
RecordID |
295836 |
C_Command |
maker |
C_Command |
maker |
C_Version |
4.0 |
C_Version |
4.0 |
ソフトウェア使用率監視機能は、swu_rpt 関数の呼び出しをアプリケーションに埋め込んで実行することもできます。この方法を使うと、コンピュータネットワーク上のユーザーが作成したアプリケーションの使用率を効果的に監視できます。
たとえば、さまざまなプロジェクトに費やされる時間をチェックするためにオンラインタイムカードアプリケーションを作成したとします。ただし、全員がこの機能を使っているかどうか確認できません。このような場合に、このオンラインタイムカードアプリケーションの中に swu_rpt 関数の呼び出しを埋め込むと、この関数はアプリケーションが実行されるたびに使用率レポートを作成します。
次に、アプリケーションにソフトウェア使用率監視レポート関数を埋め込むための手順を説明します。
エディタで、ソフトウェア使用率監視コマンドを埋め込む先のアプリケーションソースコードファイルを開きます。
次のヘッダファイルをアプリケーションソースコードに追加します。
#include <swusage.h> |
アプリケーションの開始を報告する swu_rpt 関数を追加します。
swu_rpt ("Server_name", "Identifier", SWU_BEGIN, "Product_name", avl) |
アプリケーションの終了を報告する swu_rpt 関数を追加します。
swu_rpt ("Server_name", "Identifier", SWU_END, "Product_name", avl) |
次のいずれかの引き数を使って、アプリケーションソースコードをコンパイルします。
ライブラリを静的にリンクする場合
$ ... -I/opt/SUNWswusg/include -L/opt/SUNWswusg/lib ¥ -Bstatic -lswusage -lnsl ... |
ライブラリを動的にリンクする場合
$ ... -I/opt/SUNWswusg/include -R/opt/SUNWswusg/lib ¥ -L/opt/SUNWswusg/lib -lswusage -lnsl ... |
以下の例はソフトウェア使用率監視関数が埋め込まれたアプリケーションを示したものです。
#include <stdio.h> /* definition of NULL */ #include <swusage.h> /* swu_rpt() prototype, swusage_alist definition */ #define ATTRIBUTE_COUNT 3 main() { struct swusage_alist avl[ATTRIBUTE_COUNT]; /* *ソフトウェア使用率監視レコードに入れる、製品固有の属性と値の組み合わせを定義 */ avl[0].u_attr = "ATTR_1"; avl[0].u_value = "val_1"; avl[1].u_attr = "ATTR_2"; avl[1].u_value = "val_2"; /* * 属性値リストの終端 */ avl[2].u_attr = NULL; avl[2].u_value = NULL; /* * アプリケーションの開始 (Begin) レコードを生成 */ swu_rpt("Server_name", "Identifier", SWU_BEGIN, "My product name", avl); /* * ここにアプリケーションが入る */ /* * アプリケーションの終了 (End) レコードを生成 */ swu_rpt("Server_name", "Identifier",SWU_END, "My product name", avl); } |
この例では、次のようなソフトウェア使用レポートエントリが使われます。
レポートエントリ 1 |
|
レポートエントリ 2 |
|
---|---|---|---|
Type |
Admin/Usage |
Type |
Admin/Usage |
Product |
My product name |
Product |
My product name |
SubType |
Begin |
SubType |
End |
Time |
8148244876 |
Time |
8148244920 |
UserID |
30581 |
UserID |
30581 |
User |
jod |
User |
jod |
Host |
buck |
Host |
buck |
Domain |
forest.field.com |
Domain |
forest.field.com |
HostID |
1234567890 |
HostID |
1234567890 |
Locale |
C |
Locale |
C |
Version |
1 |
Version |
1 |
Usage Server |
Server_name |
Usage Server |
Server_name |
RecordID |
Identifier |
RecordID |
Identifier |
C_ATTR_1 |
val_1 |
C_ATTR_1 |
val_1 |
C_ATTR_2 |
val_2 |
C_ATTR_2 |
val_2 |