監視などで、smtpサーバの動作まで確認したい時に使えるかも。
#!/bin/sh
LOG=/tmp/smtp_status.log
if [ $# -ne 1 ] ; then
echo "Usage: ./smtp-status.sh SMTP-HOST"
exit 2
fi
CHOST=$1
{
sleep 1
echo "HELO $CHOST";
sleep 1
echo "QUIT"
} | telnet $CHOST 25 >& $LOG
cat $LOG | grep 250.* > /dev/null
if [ "$?" -eq 0 ] ; then
echo "$CHOST Connect OK"
exit 0
else
echo "$CHOST Connect NG"
exit 1
fi
パイプの使い方が分かってないせいか一時ファイルを作成しなきゃ処理できなかった。
もっとうまい方法ありそうだけど、こんなもんで。