【Perl】 インストールされているモジュールの一覧を取得する
複数のシステムを運用している場合、それぞれのシステムにどのモジュールが(追加で)インストールされているか、確認したくなることがあります。
Continue reading ‘【Perl】 インストールされているモジュールの一覧を取得する’ »複数のシステムを運用している場合、それぞれのシステムにどのモジュールが(追加で)インストールされているか、確認したくなることがあります。
Continue reading ‘【Perl】 インストールされているモジュールの一覧を取得する’ »標準入力やファイルを1行ずつ読み込んで処理するPerlのワンライナーとして、以下のようなものが良く知られています。
[atomitech@node01 ~]$ perl -nle 'print "hello, $1!!" if /^name:\s*(.+)$/'
name: John
hello, John!!
name: Doe
hello, Doe!!
end
^D
[atomitech@node01 ~]$
[atomitech@node01 ~]$ perl -ple 's/^name:\s*(.+)$/hello, $1!!/'
name: John
hello, John!!
name: Doe
hello, Doe!!
end
end
^D
[atomitech@node01 ~]$
後者には暗黙的なprintが付加される、という点が異なります。
非常に高いセキュリティを求められるシステム基盤では、ファイルやディレクトリの改ざんにも注意を払う必要があります。そのような場合には、定期的にシステムをスキャンして改ざんの有無をチェックするためのツールを導入します。良く知られたツールとして、商用製品にはTripwire、オープンソースソフトウェアとしてAIDEやafickがあります。今回は、これらのうちのafickについて、簡単にご紹介します。
Continue reading ‘ファイル・ディレクトリ改ざん検査ツール”afick”’ »今回は、Perlの代表的なWebフレームワークであるCatalystを使って、Hinemosの直近のイベント履歴をJSON形式で取得するサンプルアプリケーションを作成してみます。
なお、アプリケーションの仕様は、http://localhost:3000/event/N/へHTTP-GETすると、直近”N”件のイベント履歴(未確認のもの)をHinemosDBから取得してJSONとして返す、という非常に簡単なものです。以下に、大まかな手順を記します。
2012/01/16 11:00追記 コントローラにロジックを詰め込み過ぎていたので、ロジックを処理するためのモデルクラスへ分離しました。
マシンにインストールされているPerlモジュールのバージョンを調べる方法として、今までよくやっていたのが、
[atomitech@node01 ~]$ perl -MDBD::SQLite -le 'print $DBD::SQLite::VERSION'
1.35
という方法でしたが、
[atomitech@node01 ~]$ perl -MDBD::SQLite\ 999
DBD::SQLite version 999 required--this is only version 1.35.
BEGIN failed--compilation aborted.
のように、バージョン999を指定してuseし、わざとコンパイルエラーを出力させる、という方法もあるみたいです(こちらで知りました…)。この方がタイピングの量が圧倒的に少なくて済みますね。目からウロコです…
先日リリースが発表されたHinemos 4.0に搭載予定のコマンド監視では、任意のコマンドの実行結果を閾値判定して監視を行うことができますが、実は現行バージョンのHinemosでも、これとある程度同じような監視を行うことができます。