BLOGTIMES
2011/11/21

ghettoVCB.sh のメール通知と qmail

  esxi  qmail 
このエントリーをはてなブックマークに追加

先日、ghettoVCB.sh を設定して ESXi のホットバックアップが取れるようにしたときに、メール通知機能を設定してみたもののメールが飛んできませんでした。experimental と書いてあるのであまりツッコミ入れてはいけない部分なのでしょうが、やっぱり不便なのでちょっと原因を調べてみることにしました。

まず、メール送信の部分をチェックして見ると、 nc の出力が /dev/null に捨てられているところがあったので、この部分をファイルにリダイレクトして内容を確かめてみます。

220 example.com ESMTP 250 example.com 250 ok 250 ok 354 go ahead 451 See http://pobox.com/~djb/docs/smtplf.html.

最後の行は qmail の吐いているエラーで、改行コードとしてLFだけ*1の行をみつけたので qmail がメールを飛ばしてくれないというオチでした。これを黙らせるには、改行コードを CR + LF に統一するしかないのですが、デフォルトでつかえるコマンドが極端に少ない ESXi だったので多少手こずりましたが、 awk を使ってこんな感じで改行コードを統一してみました。これで qmail を使っていても ghettoVCB.sh の処理結果をメール通知することができます

--- ghettoVCB.sh.org Fri Jul 29 05:55:06 2011 +++ ghettoVCB.sh Mon Nov 21 21:14:30 2011 @@ -1080,7 +1080,8 @@ for i in ${EMAIL_TO}; do buildHeaders ${i} - "${NC_BIN}" "${EMAIL_SERVER}" "${EMAIL_SERVER_PORT}" < "${EMAIL_LOG_CONTENT}" > /dev/null 2>&1 +# "${NC_BIN}" "${EMAIL_SERVER}" "${EMAIL_SERVER_PORT}" < "${EMAIL_LOG_CONTENT}" > /dev/null 2>&1 + awk '{gsub(/\r/,""); gsub(/$/,"\r"); print $0;}' "${EMAIL_LOG_CONTENT}" | "${NC_BIN}" -v -C -i 1 "${EMAIL_SERVER}" "${EMAIL_SERVER_PORT}" > /dev/null 2>&1 if [ $? -eq 1 ]; then logger "info" "ERROR: Failed to email log output to ${EMAIL_SERVER}:${EMAIL_SERVER_PORT} to ${EMAIL_TO}\n" fi @@ -1088,7 +1089,8 @@ unset IFS else buildHeaders ${EMAIL_TO} - "${NC_BIN}" "${EMAIL_SERVER}" "${EMAIL_SERVER_PORT}" < "${EMAIL_LOG_CONTENT}" > /dev/null 2>&1 +# "${NC_BIN}" "${EMAIL_SERVER}" "${EMAIL_SERVER_PORT}" < "${EMAIL_LOG_CONTENT}" > /dev/null 2>&1 + awk '{gsub(/\r/,""); gsub(/$/,"\r"); print $0;}' "${EMAIL_LOG_CONTENT}" | "${NC_BIN}" -C -v -i 1 "${EMAIL_SERVER}" "${EMAIL_SERVER_PORT}" > /dev/null 2>&1 if [ $? -eq 1 ]; then logger "info" "ERROR: Failed to email log output to ${EMAIL_SERVER}:${EMAIL_SERVER_PORT} to ${EMAIL_TO}\n" fi
  • *1: SMTP では改行コードは CR + LF である必要があるので。

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4592
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン