2007/07/02 22:26fml不具合

fmlによるメーリングリストがうまく配送できない事象が発生した。
fmlやPostfix、SpamAssassinのログを見る限りはErrorやWarningは出ていないが、正常に配送していたときと比べると出るべきログが出ていない。
SpamAssassinがメールを受けて処理を終えてしまっている。
つまり以下のような感じ。
○正常時
fml→Postfix→SpamAssassin→Postfix→外部MTA
○今回
fml→Postfix→SpamAssassin
問題発生前後でSpamAssassinのバージョンアップを行ったのが原因っぽい。
取り急ぎ3.2.1から3.1.9にバージョンダウンしてみたところ復旧した。

11:32圧縮

Webカメラでのキャプチャを1分間隔にしているため1日で1440枚、約20MB程度になっている。
シェルスクリプトで1日分の画像ファイルを1つのフォルダに入れているが、これを圧縮することにする。
今回は以下の2つの形式で比較。
 ・gzip
 ・bzip2
①gzip

# time gzip > 070701.tar.gz < 070701.tar
real    0m29.332s
user    0m13.713s
sys     0m0.705s

②bzip2

# time bzip2 > 070701.tar.bz2 < 070701.tar
real    1m44.150s
user    0m58.555s
sys     0m1.205s

それぞれのファイルサイズ。

# ls -al
-rw-r--r--   1 root   root   19988480  7月  2 11:39 070701.tar
-rw-r--r--   1 root   root   17127839  7月  2 11:46 070701.tar.bz2
-rw-r--r--   1 root   root   17677857  7月  2 11:43 070701.tar.gz

gzipは約30秒で88.44%の圧縮率、bzip2は約104秒で85.69%の圧縮率という結果になった。
元が画像ファイルであまり圧縮をかけれないので方式が違っても圧縮率はあまり変わらないことがわかった。
シェルスクリプトではgzipを使って圧縮をすることにする。

2007/06/26 13:58SpamAssassin 3.2.1

SpamAssassinを3.1.xから3.2.xにアップグレードする。

$ wget http://ftp.kddilabs.jp/infosystems/apache/spamassassin/source/Mail-SpamAssassin-3.2.1.tar.bz2
$ tar xvjf Mail-SpamAssassin-3.2.1.tar.bz2
$ cd Mail-SpamAssassin-3.2.1
$ perl Makefile.PL PREFIX=/usr/local/
REQUIRED module out of date: HTML::Parser
optional module missing: Mail::SPF
optional module missing: IP::Country
optional module missing: Razor2
optional module missing: Net::Ident
optional module missing: IO::Socket::INET6
optional module missing: IO::Socket::SSL
optional module missing: Compress::Zlib
optional module missing: Mail::DomainKeys
optional module missing: Mail::DKIM
optional module missing: Archive::Tar
optional module missing: IO::Zlib
optional module missing: Encode::Detect
warning: some functionality may not be available,
please read the above report before continuing!

こんな感じになった。
HTML::Parserのバージョンが古いらしい。
HTML::ParserはRPMでインストールしているので確認する。

# rpm -qa |grep perl-HTML-Parser
perl-HTML-Parser-3.35-6

あらら。
SpamAssassin-3.2.1はHTML::Parserは3.43以上の必要があるのでダメだ。
CPANから最新版のHTML::Parserを持ってくる。

$ wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.56.tar.gz
$ tar xvzf HTML-Parser-3.56.tar.gz
$ cd HTML-Parser-3.56
$ perl Makefile.PL
$ make
# make install

再度SpamAssassinをインストールする。

$ perl Makefile.PL PREFIX=/usr/local/
$ make
# make install

spamdのプロセスの再起動で完了。

# /sbin/service spamd restart
spamd を停止中:                                            [  OK  ]
spamd を起動中:                                            [  OK  ]

2007/06/23 01:14Unison Part1

ファイル同期ソフトであるUnisonを導入する。
今回はWindowsとLinuxでできるようにしてみる。
まずはLinux側にUnisonをインストールする。

$ wget https://svn.cis.upenn.edu/svnroot/unison-contributed-binaries/linux/unison-2.17.1-linux-text.bz2
$ bunzip2 -d unison-2.17.1-linux-text.bz2
# chmod 755 unison-2.17.1-linux-text
# cp unison-2.17.1-linux-text /usr/local/bin/unison

次にWindows側にもUnisonをインストールする。
UnisonのWindowsバイナリをD:\unison配下に保存する。
さらに通信の暗号化をSSHを使って行うためplink.exeも入手しておく。
SSHで初回アクセス時にはフィンガープリントの確認が必要なのでこの段階で確認しておく。

D:\unison>plink.exe user@10.33.xx.yy -P 22 -pw password -ssh /usr/local/bin/unison -version
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 1024 aa:11:bb:22:cc:33:dd:44:ee:55:ff:66:gg:77:hh:88
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y
unison version 2.17.1

2007/06/22 19:59NTP 4.2.4p2

NTP 4.2.4p2がリリースされたのでKAJUKAJU.netのNTPもバージョンアップ。

$ wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.4p2.tar.gz
$ tar xvzf ntp-4.2.4p2.tar.gz
$ cd ntp-4.2.4p2
$ ./configure
$ make
# make install
# /sbin/service ntpd restart
ntpd を停止中:                                             [  OK  ]
ntpd: 時間サーバと同期中:                                  [  OK  ]
ntpd を起動中:                                             [  OK  ]

2007/06/18 13:53Webカメラ Part3

キャプチャソフトであるxawtvをインストールする。

$ wget http://dl.bytesex.org/releases/xawtv/xawtv-3.95.tar.gz
$ ./configure
$ make
# make install

インストール時にいろいろエラーが出た。
一つ目。

$ ./configure
(省略)
checking for jpeg_start_compress in -ljpeg... no
Oops:   jpeg library not found.  You need this one, please install.
Note:   to compile stuff just the library packages are not enougth,
you need also the *-devel packages.

これはlibjpeg-develパッケージがないため。
libjpeg-develをインストールすることで対応可能。

# yum install -y libjpeg-devel

二つ目。

$ make
CC      console/dump-mixers.o
LD      console/dump-mixers
CC      console/record.o
console/record.c:9:20: curses.h: そのようなファイルやディレクトリはありません
console/record.c: In function `tty_raw':

これはncurses-develパッケージがないため。
ncurses-develをインストールすることで対応可能。

# yum install -y ncurses-devel

今回使用するwebcamの設定ファイルを作成する。
 ・キャプチャ画像はローカルに保存
 ・日付名の過去データを保存
 ・最新のファイル名はwebcam.jpg
/usr/local/etc/webcamrc

[grab]
device = /dev/video0
text = "%Y-%m-%d %H:%M:%S"
#infofile = filename
fg_red = 255
fg_green = 255
fg_blue = 255
width = 320
height = 240
delay = 3
wait = 0
#input = composite1
norm = pal
rotate = 0
top = 0
left = 0
bottom = -1
right = -1
quality = 75
trigger = 0
once = 0
archive = /usr/local/apache2/htdocs/webcam/%y%m%d%H%M.jpg
[ftp]
#host = www
#user = webcam
#pass = xxxxxx
dir  = /usr/local/apache2/htdocs/webcam
file = webcam.jpg
tmp  = uploading.jpg
passive = 1
debug = 0
auto = 0
local = 1
ssh = 0

画像の保存先を作成してからwebcamコマンドを実行する。

# /usr/local/bin/webcam /usr/local/etc/webcamrc
reading config file: /usr/local/etc/webcamrc
ioctl: VIDIOC_QUERYCAP(driver="";card="";bus_info="";version=0.0.0;capabilities=0x0 []): Unknown error 515
video4linux webcam v1.5 - (c) 1998-2002 Gerd Knorr
grabber config:
size 320x240 [24 bit TrueColor (LE: bgr)]
input (null), norm pal, jpeg quality 75
rotate=0, top=0, left=0, bottom=240, right=320
write config [ftp]:
local transfer /usr/local/apache2/htdocs/webcam/uploading.jpg => /usr/local/apache2/htdocs/webcam/webcam.jpg

画像がキャプチャされているか確認する。

# ls -al /usr/local/apache2/htdocs/webcam/
合計 40
drwxr-xr-x  2 root   root    4096  6月 18 12:57 .
drwxr-xr-x  7 apache apache  4096  6月 18 12:08 ..
-rw-r--r--  1 root   root   13409  6月 18 12:57 0706181257.jpg
-rw-r--r--  1 root   root    7517  6月 18 12:59 0706181259.jpg
-rw-r--r--  1 root   root   13569  6月 18 13:00 0706181300.jpg
-rw-r--r--  1 root   root   13569  6月 18 13:00 webcam.jpg

ログを見ると何やら大量のエラーが・・・

# tail /var/log/messages
Jun 18 12:57:45 bruna kernel: quickcam: frame lost
Jun 18 12:57:45 bruna kernel: quickcam: frame lost
Jun 18 12:57:45 bruna kernel: quickcam: frame lost
Jun 18 12:57:45 bruna kernel: quickcam: frame lost
(以下省略)

エラーメッセージを制御する方法があった。
これでエラーが出なくなる。

# /usr/local/bin/qcset debug=0 2&>1 /dev/null

2007/06/15 10:15Webカメラ Part2

Webカメラ用のドライバは以下のサイトから入手することが可能。
http://qce-ga.sourceforge.net/
ドライバのコンパイルにはカーネルソースが必要になるのでkernel-develパッケージをインストールする。

# yum install -y kernel-devel

ドライバをインストールする。

$ wget http://jaist.dl.sourceforge.net/sourceforge/qce-ga/qc-usb-0.6.5.tar.gz
$ tar xvzf qc-usb-0.6.5.tar.gz
$ cd qc-usb-0.6.5
$ export PATH=$PATH:/sbin
$ make
$ make all
# make install

インストールされたドライバの情報を確認する。

# /sbin/modinfo /lib/modules/2.6.9-55.EL/misc/quickcam.ko
filename:       /lib/modules/2.6.9-55.EL/misc/quickcam.ko
parm:           qcdebug:Sets the debug output (bitfield)
parm:           keepsettings:Keep picture settings across one open to another (0-1)
parm:           settle:Maximum number of frames to wait picture brightness to settle (0-255)
parm:           subsample:Sets subsampling (0-1)
parm:           compress:Enable compressed mode (0-1)
parm:           frameskip:How frequently capture frames (0-10)
parm:           quality:Sets the picture quality (0-5)
parm:           adaptive:Automatic adaptive brightness control (0-1)
parm:           equalize:Equalize image (0-1)
parm:           userlut:Apply user-specified lookup-table (0-1)
parm:           retryerrors:Retry if image capture fails, otherwise return error code (0-1)
parm:           compatible:Enable workaround for bugs in application programs (bitfield)
parm:           video_nr:Set videodevice number (/dev/videoX)
description:    Logitech QuickCam USB driver
author:         See README
license:        GPL
vermagic:       2.6.9-55.EL 686 REGPARM 4KSTACKS gcc-3.4
depends:        videodev
alias:          usb:v046Dp0840dl*dh*dc*dsc*dp*ic*isc*ip*
alias:          usb:v046Dp0850dl*dh*dc*dsc*dp*ic*isc*ip*
alias:          usb:v046Dp0870dl*dh*dc*dsc*dp*ic*isc*ip*

ドライバの設定を行う。
/etc/modprobe.conf

alias eth0 e100
alias eth1 8139too
alias usb-controller uhci-hcd
# Turn off IPv6
alias net-pf-10 off
alias ipv6 off
# QC-30
alias camera quickcam

ドライバを認識させる。

# /sbin/modprobe videodev
# /sbin/modprobe quickcam
# /sbin/lsmod
Module                  Size  Used by
quickcam               74660  0
videodev               10049  1 quickcam
autofs4                28101  0
dm_mirror              30789  0
dm_mod                 65401  1 dm_mirror
uhci_hcd               31705  0
8139too                26177  0
e100                   33861  0
mii                     5313  2 8139too,e100
floppy                 58609  0
ata_piix               15173  0
libata                111645  1 ata_piix
scsi_mod              125517  1 libata
ext3                  117193  7
jbd                    71769  1 ext3

ログにエラーが出ていないか確認する。

# tail /var/log/messages
Jun 15 10:06:16 bruna kernel: Linux video capture interface: v1.00
Jun 15 10:07:14 bruna kernel: quickcam: QuickCam USB camera found (driver version QuickCam USB 0.6.5 $Date: 2006/10/23 22:06:39 $)
Jun 15 10:07:14 bruna kernel: quickcam: Kernel:2.6.9-55.EL bus:1 class:FF subclass:FF vendor:046D product:0870
Jun 15 10:07:14 bruna kernel: quickcam: Sensor HDCS-1000/1100 detected
Jun 15 10:07:14 bruna kernel: quickcam: Registered device: /dev/video0
Jun 15 10:07:14 bruna kernel: usbcore: registered new driver quickcam

2007/06/14 01:00Webカメラ Part1

以前サーバ機に取り付けていたUSB接続のWebカメラを外してしまっていたので再度構築する。
Webカメラはロジクールの「Qcam Express」というかなり古いものを使用する。
まずはUSBに接続しデバイス情報を確認する。
認識はしている様子。

# tail /var/log/messages
Jun 14 00:52:00 bruna kernel: usb 1-2: new full speed USB device using address 2
# /sbin/lsusb
Unknown line at line 5959
Unknown line at line 5960
Unknown line at line 5961
Unknown line at line 5962
Unknown line at line 5963
Unknown line at line 5964
Unknown line at line 5965
Unknown line at line 5966
Unknown line at line 5967
Unknown line at line 5968
Unknown line at line 5969
Unknown line at line 5970
Bus 001 Device 002: ID 046d:0870 Logitech, Inc. QuickCam Express
Bus 001 Device 001: ID 0000:0000

2007/06/12 22:01OpenSSH 4.6p1

KAJUKAJU.netではRPMでのOpenSSHが動いていたのだがソースのOpenSSHに変更した。
変更手順は以下の通り。
 1.ソースでOpenSSHをインストール&設定
 2.起動スクリプトをソースのOpenSSHが起動するように変更
 3.OpenSSHの再起動
 4.接続確認
 5.RPMのOpenSSHをアンインストール
まずはソースのOpenSSHをインストールする。
ユーザはRPMのOpenSSHで作成されているものをそのまま使用する。

$ wget ftp://ftp.kddlabs.co.jp/OpenBSD/OpenSSH/portable/openssh-4.6p1.tar.gz
$ tar xvzf openssh-4.6p1.tar.gz
$ cd openssh-4.6p1
$ ./configure --prefix=/usr/local/openssh \
--with-privsep-user=sshd \
--with-privsep-path=/var/empty/sshd \
--without-zlib-version-check

起動スクリプトの変更。(※変更箇所のみ)
/etc/rc.d/init.d/sshd

# Some functions to make the below more readable
KEYGEN=/usr/local/bin/ssh-keygen
SSHD=/usr/local/sbin/sshd
RSA1_KEY=/usr/local/etc/ssh_host_key
RSA_KEY=/usr/local/etc/ssh_host_rsa_key
DSA_KEY=/usr/local/etc/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid

OpenSSHの再起動。

# /sbin/service sshd restart
sshd を停止中:                                             [  OK  ]
sshd を起動中:                                             [  OK  ]

ローカルやリモートからSSHで接続できるか確認する。
稼動バージョンについてTelnetで接続して確認する。

$ telnet 10.33.77.xx 22
Trying 10.33.77.xx...
Connected to bruna.kajukaju.net (10.33.77.xx).
Escape character is '^]'.
SSH-2.0-OpenSSH_4.6
Protocol mismatch.
Connection closed by foreign host.

RPMのOpenSSHをアンインストールする。
アンインストール時に起動スクリプト(/etc/rc.d/init.d/sshd)とディレクトリ(/var/empty/sshd)が削除されてしまうので注意する。

# yum remove openssh

2007/06/05 17:21Postfix 2.4.3

Postfix 2.4.3がリリースされたのでKAJUKAJU.netのPostfixもバージョンアップ。

$ wget http://mirror.postfix.jp/postfix-release/official/postfix-2.4.3.tar.gz
$ tar xvzf postfix-2.4.3.tar.gz
$ cd postfix-2.4.3
$ make
# make upgrade
# /sbin/service postfix restart
postfix を停止中:                                          [  OK  ]
postfix を起動中:                                          [  OK  ]

© 2003-2014 うーたんの小部屋 | Powered by Wordpress