小物ツールとパイプ v.s. スクリプト言語

最近,鯖管理のスクリプトにはなるべくbashスクリプトとheadとかgrepとかlsとかの組み合わせを使うようにしている.Rubyスクリプトはコストが高くつくんじゃないか*1という心配と,うまく組み合わせさえすれば小物ツールたちの方が「意図」に明確にマッチしたよいスクリプトになるんじゃないかという期待から.何しろやつらはUnixにおいて先人達が雑事を片付けるために用意してきたツールなのだから,ひどく複雑なタスクでもなければ十分なはずだ.
しかし前者についてだが,Rubyのフットプリントがgrepやheadのそれとはずっと大きいであろうことは想像がつく.しかし小さいプロセスを繰り返し生成するOSの身にもなってみろ,という気もしてくる.あとはキャッシュか.まぁ小物ツールならきちんと載るだろうが,Rubyとかだとどうかな? あるプロセスの生涯におけるメモリ消費量の最大値を調べるにはどうすればいいんだろう? topだと最大値を捉えられないよね.
SpamAssassinが捉えたスパムが十分な数だけ溜まったら私にメールするスクリプト(cronで週1回起動する).

#! /bin/bash

TOTAL_MAILS=100
ADMIN_NAME=flatline

if [ -f $HOME/spam/spam/$TOTAL_MAILS -o -f $HOME/spam/doubt/$TOTAL_MAILS ] ; then
        mailtmp=`mktemp -t thereAreManySPAMs.XXXXXX` || exit 1
        for i in spam/*/* ; do
                echo $i >> $mailtmp
                head -n 20 $i | grep '^From ' >> $mailtmp
                head -n 20 $i | grep '^To: ' >> $mailtmp
                head -n 20 $i | grep '^Subject: ' | nkf -m >> $mailtmp
                head -n 20 $i | grep '^X-Spam-Level: ' >> $mailtmp
                grep -E '^Content preview: ' -A 4 $i | nkf >> $mailtmp
                echo >> $mailtmp
        done
        cat $mailtmp | mail -s "More than $TOTAL_MAILS SPAMs" $ADMIN_NAME
        rm $mailtmp
fi

*1:UTMCの鯖の性能はしょぼい.CPU: Pentium II 300MHz(キャッシュ: 512KB),RAM: 64+128MB.早いうちに新鯖に移行したいところだ...