メールスプール引越しのTips

 古いRedHatなシステムからDebian etchなシステムに環境移行の仕事をしたのだけど、当時のRedHatのメールスプールはちょっと変で、POP3で読むとメールの一通目に作業用のシステムデータが残ってる。これが新環境で「社内なのに変なSPAMメールが」とちょっと騒ぎになってしまった。

 仕方がないので、こんなスクリプトで逃げた。/bin/bashという制限ありとはいえ、我ながらバカバカしいほどのやっつけスクリプトだ。笑ってくれ orz

#!/bin/sh

Count=0

cd /var/mail
NMail=/var/tmp/NeoMail
rm -rf $NMail
mkdir $NMail

for i in *;do
  FL=/var/mail/$i
  WC=`wc -l $FL|awk '{print $1}'`
  NWC=`expr $WC - 13`
  #echo $WC
  Head1=`head -1 $FL|grep MAILER-DAEMON`
  Head9=`head -9 $FL|tail -1|grep "This text is"`
  Head12=`head -12 $FL|tail -1|grep "with the data"`
  Head13=`head -13 $FL|tail -1`
  Head14=`head -14 $FL|tail -1|grep "^From\ "`
  if [ "$Head1" != "" ];then
    if [ "$Head9" != "" ];then
      if [ "$Head12" != "" ];then
        if [ "$Head13" = "" ];then
          if [ "$Head14" != "" ];then
            Count=`expr $Count + 1`
            #echo -n "$Count:$WC/$NWC:$i:$Head1 ... "
            echo -n "$Count:$i:murmur ... "
            tail -$NWC $FL > $NMail/$i
            echo -n "chant ... "
            sync
            echo -n "pray ... "
            cp $NMail/$i $FL
            echo "invoke!"
            sync;sync
          fi
        fi
      fi
    fi
  fi
done

 実行すると、該当ユーザのメールをぶったぎる。頭に書き換えたメンバーの頭数も出る。少しでも怪しい要素があると切らないので、動作については確認必須。

 ちなみに「murmur ... chant ... pray ... invoke!」というのは「ささやき……えいしょう……いのり……ねんじろ!」と訳す。すっごい大昔のコンピュータゲームネタである。