2011-07-25 4 views
0

私は、ネットワーク経由でログを取得し、関連する情報を解析し、何らかのアクションを実行するスクリプトを作成しようとしています(重要な問題がある場合は電子メールでログファイルに書き込みます)。 syslogdでAIXマシンを使用してログを処理しています。今のところ、いつものようにすべてのログをファイルに書き出しています...たくさんのファイル。名前付きパイプを使ってPerlでsyslogを解析する?

スクリプトを実装するためにPerlとNamed Pipesを使用することをお勧めしました。私はちょうど名前付きパイプで読んでいくつかの時間を過ごしたと私は彼らが非常に魅力的だと思う。しかし、私は、この状況で情報の "流れ"がどのように働くべきか、それをどう処理するのかについて困惑しています。

例えば、スクリプトの外部にfifoを作成して、デフォルトでsyslogdに書き込んで、スクリプトの反対側にスクリプトを書き出すようにしますか? Perlはこれを行うことができますか(あなたのシステム管理者にとって)これはスマートで/可能なオプションですか?

これはPerlと名前付きパイプで初めての遭遇です。

+0

私のログ管理プロジェクト[Octopussy](http://www.8pussy.org)は、それ以上のことをしています。これは完全なPerlプロジェクトですので、コードを見たり、使用したりすることができます。 – sebthebert

+0

非常にクールなアイデア@sebthebert。自分のログマネージャを作成しようとするかもしれません。私は間違いなくあなたのコードに行きます。 – n0pe

答えて

1

確かにnamed pipe in Perlを作成することはできますが、私が思うように、あなたが提案しているように、名前付きパイプをperlの外に作成してからsyslogdに書き込み、 perlからパイプを読み込みます。

私は非常によくAIXを知りませんが、これはパイプ(source)を作成するために行うことができます:

mkfifo -p /var/adm/syslog.pipe 

は、それへの書き込みをsyslogdを持つように、/var/adm/syslog.pipeでこれを定義します。

*.info      |/var/adm/syslog.pipe 

次に:

kill -HUP `cat /var/run/syslogd.pid` 

また、これらのすべてをあなたのperlに入れることもできますcript:パイプが存在しなかった場合、またはsyslogdがパイプを使用していなかった場合、スクリプトは必要なものすべてを手配します。

もっと助けが必要な場合は、あなたがしようとしていることについて、より詳細な情報を提供する可能性があります。

+0

投稿したコードスニペットが(http://www.softpanorama.org/Logs/Syslog/pipes_in_syslog.shtml)の記事であり、カスタムsyslog設定ファイルを作成する必要があるようです。私はそれを見ていきます、ありがとう。 – n0pe

関連する問題