ホーム » t-saitoh の投稿 (ページ 349)

作者アーカイブ: t-saitoh

システム

最近の投稿

アーカイブ

カテゴリー

qmail の送信データ数のカウント

MRTG にて qmail の送受信のメール数をカウントしようと、 qmailmrtg をインストールしようとするが、 multilog やら qmail の起動スクリプトの変更やら、後々面倒そう。 ということで、カウント用のプログラムをちょいと作る。

logcount.pl

Debian には、log 関係のプログラムも色々あるみたいだけど、 設定もややこしそうで、Perl FN ログ整理ということで『C で高速化?』とも思ったが、汎用性を考えると正規表現は 欲しいし、試しに作った Perl でも十分すぎる速度であった。 /FN で作ってみる。

設定ファイル記録した正規表現に、パターンマッチした行の数をカウントすることにする。 またリアルタイムに計数したいので、前回読み込み終了した場所を保存しておき、 次回は seek で途中から行うことにする。

≪ /etc/mrtg.d/qmail.conf : qmail の受信・送信の履歴をカウントする正規表現ファイル ≫
\w+ qmail: \d+\.\d+ starting delivery \d+: msg \d+ to remote
\w+ qmail: \d+\.\d+ starting delivery \d+: msg \d+ to local
≪ /etc/cron.d/qmail-smtp : 5分おきにログファイルをカウント ≫
1-56/5 * * * *	root if [ -x /etc/mrtg.d/logcount.pl ]; then
/etc/mrtg.d/logcount.pl -c /etc/mrtg.d/qmail.conf
-s /var/run/logcount.txt /var/log/syslog 2>&1;
fi
≪ /etc/mrtg.d/qmail-mrtg.sh : MRTG 用のデータを作るプログラム ≫
#!/bin/bash
/usr/bin/tail +2 /var/run/logcount.txt | /usr/bin/head -2
/usr/bin/uptime | cut -d, -f 1
echo qmail
≪ /etc/mrtg.d/logcount.pl : カウントするプログラム ≫
#!/usr/bin/perl
use Getopt::Std ;
# カウント情報を保存するファイル
$stats = "/var/run/logcount.txt" ;
# Usage: logcount.pl -c 設定ファイル -s 計数ファイル ログファイル
#	設定ファイル
#		1行毎にログファイルとパターンマッチする正規表現を記載
#	計数ファイル
#		先頭行は、最後に読み込んだファイル位置
#		残りの行は、パターンマッチした行の数
getopts( "c:s:" ) ;
$config = $opt_c if ( $opt_c ne "" ) ;
$stats  = $opt_s if ( $opt_s ne "" ) ;
# 設定ファイルの読み込み
open( CONF , "$config" ) || die( "Can't open $config\n" ) ;
for( $size = 0 ; $line =  ; $size++ ) {
next if ( $line =~ /^#/ ) ;
$line =~ s/\s+$// ;
$regex[ $size ] = $line ;
}
close( CONF ) ;
# 計数ファイルの読み込み
if ( ! -f "$stats" ) {
open( STAT , ">$stats" ) || die( "Can't open $stats\n" ) ;
close( STAT ) ;
}
$seek = 0 ;
if ( open( STAT , "+<$stats" ) ) {
$seek = 0 +  ;
for( $j = 0 ; ($j < $size) && ($line = ) ; $j++ ) {
$count[ $j ] = 0 + $line ;
}
}
# ログファイルを開く
$logfile = shift( @ARGV ) if ( @ARGV > 0 ) ;
open( LOG , "$logfile" ) || die( "Can't open $logfile\n" ) ;
@stat = stat( LOG ) ;
if ( $stat[ 7 ] < $seek ) {
$seek = 0 ;	# 切り詰められたら先頭から読み直し
} else {
seek( LOG , $seek , SEEK_SET ) ;
}
# ログファイルの読み込み
while( $line =  ) {
#print $line ;
if ( $line =~ /\n$/ ) {
($date , $logdata) = ($line =~ /^(\w+\s+\d+\s\d+:\d+:\d+)\s+(.*)$/) ;
# パターンマッチする表現を求める
for( $i = 0 ; $i < $size ; $i++ ) {
$rex = $regex[ $i ] ;
if ( $logdata =~ /$rex/ ) {
$count[ $i ]++ ;
break ;
}
}
$seek = tell( LOG ) ;
} else {
last ;	# 追記中で行末が無いデータなら処理せず終了
}
}
close( LOG ) ;
# 計数ファイルを更新
seek( STAT , 0 , SEEK_SET ) ;
print STAT "$seek\n" ;
for( $i = 0 ; $i < $size ; $i++ ) {
print STAT $count[ $i ]."\n" ;
}
close( STAT ) ;

カフェって

ねこカフェ

『カフェ』付けりゃ、ええってもんじゃないだろ…とは思うが、 ひとまず行ってみたいか…

半田付けカフェ

福井が本店のマルツ電波だけど、秋葉原に支店を出していた。 そこで、半田付けの出来る環境『マルツメイク館』を提供したのだが、 秋葉原ゆえ別名『半田付けカフェ』と呼ばれるハメに…
# ガッコに出入りする営業の方に「すごい呼ばれ方されてますね…」と思わずチャチャ入れ…

bluez でデータ転送(opd)

bluez 環境にてbluetooth対応携帯(W31T)とデータ転送を試してみた。

opd のインストール

OPP プロトコルを受けるための opd は、debian では無かったので、参考サイトの情報を元にインストール。

# apt-get install libbluetooth1 libbluetooth1-dev
$ mkdir opd
$ tar zxvf ../opd-v0.2-2003-03-18.tar.gz
$ vi Makefile
≪ libspd は libbluetooth に組み込まれたので -lsdp を削除 ≫
$ make
$ su
# cp opd /usr/local/sbin/

opd を使ってみる

bluez の動作にて hcid と sdpd が動作していることを確認し、W31T で接続相手を探すが、 サポートしているプロトコル欄に何も表示されない。sdptool で対応プロトコルを設定する。

# sdptool add --channel=2 OPUSH

これにより W31T にて OPP プロトコルが見えるようになる。

# /usr/local/sbin/opd --mode BIP --channel 2 --daemonize --path /home/hoge/bluetooth-inbox

W31T の (M663)データ送信にて『接続』を選ぶと、アドレス帳、プロフィールを送信することができた。 しかし、BIP(イメージ転送)を選んでいるんだが、(M662)ピクチャ送信を実行しても、 「対応機器ではありません」とつれない返事。 "–mode" は OBEX でも転送ができた。

緊急連絡システムの問題

今日、保育園にて役員会が行われた。その席上で市長と語る会に参加予定の 保育園会長より、『市長への質問事項はありませんか?』との内容。

緊急連絡の前と後

参加保護者より『緊急連絡システムといっても運用ルールは?』といった質問や、 『味真野小学校から今日テストメールの配信があったけど、携帯を社内に持ち込めず 返答が遅かったら「返事をお願いします」との催促があった…』 FN うーん、慌てすぎ…. /FN との報告があった。 うーむ、携帯の事情をもう少し理解して欲しいなぁ…

バッテリートラブル

昨日、自宅作業小屋に車を止めた時、車のドアをきちんと閉めていなかったため、 今日の朝はバッテリーが上がってしまい、車が動かない。 お隣さんにバッテリーケーブルを借り、車のバッテリーを繋ぎ、動かそうとする。 しかしバッテリーのパワー不足が原因で、エンジンがかからなかった。

やむおえず JAF を呼ぶ。加入はしていても、この数年呼んだこともない FN 前回は廃車寸前の前の車が、ラジエータが壊れ高速でサポートを依頼して以来。 /FN し、たまには会費分をとりかえそうと呼んでみる。 JAF 到着で、専用のバッテリーを使ったら、いっぺんでエンジンがかかり、 あっさり終了であった。

Virus Buster 2006 のインストール

スパイウェア対策などが中心で、あんまり欲しい新しい機能が無かったので、 面倒さもありインストールしていなかった VB2006 を、試しに入れてみる。

フィッシング対策ということで、個人情報を登録しておくと、個人情報を送出すると 警告してくれるらしい。だけど、VB に個人情報を登録する事自体を不気味に 感じてしまう。ということで、当面使わない機能だな。

マウスのこだわり

ボールマウスを使っていたが、内部にホコリゴミが増えたのか動きが鈍い時がある。 ということで、ワイヤレスオプティカルマウスを購入。 でもあゆちゃんは、LogiteckからMicroSoftにしてデザインが違うとこだわるのか、古いマウスを持つ。おかげで机の上にマウスが2個。 (by パパ)

緊急連絡システムに値段をつけると

ガッコで作った緊急連絡システムだが、嶺南の小学校で導入した事例は、 新聞の写真から想像すると、Windows ベースでメールをばらまくだけ。
# Excel マクロでも作れるな…
安定運用になれば、50円/人/月らしい。

今の越前市のデータが揃って、同じ価格なら概算で、50円×10000人×12ヵ月=600万/年。 でも、こっちの方が利用者確認やらQRコードなどの機能が豊富で、無償提供!
# 格安設定とかいって10円/人/月として、100万/年もらっても…

嶺南のシステムの、個人情報漏洩対策はシステムのノートパソコンごと金庫に保管。 こっちは SSL+パスワード+Debian+Firewall、ひとまず十分と思える対策だが、 ネットワークに完璧は無い。と言う点で『金庫に保管』には勝てないな…

Nagios の設定

ガッコの緊急連絡システムにて、Nagios を動かす。 ちょっとした変更を加えて restart をかけたら、 Nagios は正常に動いているくせに、管理画面にて "It appears as though you do not have permission…" といったエラーメッセージが表示されるようになった。

原因は、変更を加えた際に、hosts.cfg ファイルの設定が、 root の所有権になったため。hosts.cfg は、"rw-,—,—" といった Permission で CGI が、設定ファイルを読めなかった様子。 "chown nagios.www-data hosts.cfg"を実行し、動き出す。

μVNC for BREW

μVNC for BREW

日立システムアンドサポートより携帯の上で動く VNC だとさ。
# W31T は、まだサポートしていないみたい。

といっても、携帯の画面の上で X に接続できても、login なんかしたくねー。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報