perlのSun::Solarisモジュール

kstat が perl だというのを完全に忘れていました。。。


$ file /usr/bin/kstat
/usr/bin/kstat: executable /usr/perl5/bin/perl script

で、kstatと中のKstat.pm見るとわかりますが、Kstat.soから直接libkstatにアクセスしているという素敵なモジュールです。
どうせなら普段使っている perl 5.10で使いたいのでコンパイルしてみました。

ソースの入手は subversionOpenSolarisリポジトリより。
(推奨は Mercurial なんでしょうが、ssh ごしなので、会社からだと使えないという。。。)


$ pfexec pkg install SUNWsvn
$ svn co http://svn.genunix.org/repos/on/trunk/usr/src/cmd/perl/contrib/Sun/
...
A Sun/Solaris/Exacct/exacct_common.xh
Checked out revision 1455.
$ ls Sun/Solaris/
BSM/ Intrs/ Lgrp/ Privilege/ Task/ Utils/
Exacct/ Kstat/ PerlGcc/ Project/ Ucred/
ちなみに、sparc上のSolaris10+perl5.10とi386上のOpenSolaris(snv_108)+perl5.10 の両方で無事動きました。

モジュールは、Sun::Solaris::UtilsとSun::Solaris::Kstat を入れます。


$ cd Sun/Solaris/Utils/
$ /usr/local/bin/perl Makefile.PL
$ make
$ make test
$ pfexec make install
$ cd ../Kstat/
$ make
$ make test
$ pfexec make install
$ /usr/local/bin/perl /usr/bin/kstat |more
module: SUNW,audiohd instance: 0
name: SUNW,audiohd class: controller
...
$

今までは、シェル等で vmstatやiostatをログに出力。ばらしてcsvからExcel or rrdtoolに流し込むとかけっこうな手間だったんですが、
これで libkstat に直接アクセスして各種パラメータを最初からcsvにしたりと夢が広がります。。