ホーム » 未分類 (ページ 77)

未分類」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

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 でも転送ができた。

カフェって

ねこカフェ

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

半田付けカフェ

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

バッテリートラブル

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

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

Virus Buster 2006 のインストール

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

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

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

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

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

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

金箔のランドセルだって

金箔のランドセルだって

みつくんもそろそろ1年生。 ランドセルの購入の時期。ヒーロー物の影響か『赤のランドセルがいい!』と言っている。 絶対、入学して色の事を言われて後悔しそうな性格だし… でも、ニュースを見ていると金箔のランドセルだってさ。
# そんなのつけて学校行ったら、絶対いじめられるって….

カップラーメンをおいしく食べる裏技!?

カップラーメンをおいしく食べる裏技!?

カップラーメンのお湯の代わりに、牛乳や緑茶を使うと、 美味しいらしい。 試したいけど、こりゃかなりチャレンジャー….ネタか?

—– EXTENDED BODY:

犬も尿路結石だって

正月に姉が遊びに来てたときに、犬に血尿があることをみつけてくれ、 じぃばぁに動物病院に連れていってもらう。 診断は『尿路結石』。同じ病気持ち仲間ってか….

gdmのXサーバでリモート接続

昔々の X を使っている頃は、xclock -display host:0.0 といった、 -display オプションを使いサーバをまたがって作業をしていたが、 "xhost +" を実行しても Can't open display 等と表示されていた。 ホスト画面を乗っ取られるから、セキュリティ的に NG なのは解っているが、 便利な機能なので、使いたい機能。xdm であれば、Xaccess なりのファイルで 制限を加えられることは見つかるのであるが、gdm の場合は情報がなかなか見つからない。

VNC サーバを使えるようにするために、gdm にて、

≪ /etc/X11/gdm/gdm.conf ≫
[xdmcp]
Enable=true

といった設定を加えるという説明を見つけ、VNC から接続ができるようになる。 しかし、コンソールの X 画面では、相変わらず -display 接続が拒否される。

≪ /etc/X11/gdm/gdm.conf ≫
## Note:
# is your X server not listening to TCP requests?  Perhaps you should look
# at the security/DisallowTCP setting!
:
[server-Standard]
# command=/usr/X11R6/bin/X -audit 0 -nolisten TCP
command=/usr/X11R6/bin/X -audit 0

よくよく gdm.conf を読むと、上記のような行を発見。ということで、

≪ /etc/hosts.allow ≫
gdm: 192.168.XX.0/255.255.255.0
≪ /etc/X11/gdm/gdm.conf ≫
DisallowTCP=false

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報