最近のコメント

    シェルスクリプト(sendmailコマンド)だけでメール送信

    保守監視等で、よく利用するのだが毎回忘れるので備忘録的に。

    CRONで毎日お昼の12時に実行するサンプル
    [bash]
    0 12 * * * bash /path/to/dir/hogefuga_report.sh
    [/bash]

    sendmailコマンドを使用して、SQL(postgresql)を実行して結果をメール送信するスクリプトサンプル
    hogefuga_report.sh
    [bash]
    #!/bin/sh

    #### 汎用メール送信スクリプト
    export PATH=$PATH:/usr/sbin
    export PGPASSWORD=naisyodayo

    NOWDATE=`date ‘+%m月%d日 %R ‘`

    HOGE_CNT=`psql -U postgres -d dev –tuples-only -c ‘select count(*) as hoge_cnt from hogehoge_tbl’`
    FUGA_CNT=`psql -U postgres -d dev –tuples-only -c ‘select count(*) as fuga_cnt from fugafuga_tbl’`
    HOGE_CNT=`echo ${HOGE_CNT} | tr -d ” “`
    FUGA_CNT=`echo ${FUGA_CNT} | tr -d ” “`

    MAIL_TO=”hogeko@hoge.com.jp”
    MAIL_CC=”fugasuke@fuga.com.jp”
    MAIL_BCC=”pekeo@peke.com.jp”
    MAIL_FROM=”ore@oresama.com.jp”
    SUBJECT=”俺様のレポート”
    DATA=”俺様の反響結果は以下となる”

    mail_send () {
    cat << EOD | sendmail -t
    From: ${MAIL_FROM}
    To: ${MAIL_TO}
    Cc: ${MAIL_CC}
    Bcc: ${MAIL_BCC}
    Subject: ${SUBJECT}
    MIME-Version: 1.0
    Content-Type: text/plain; charset=”UTF-8″

    俺様へ

    今日(${NOWDATE})のレポートを送るのでよく見ること。

    ${DATA}

    ・ほげ数
    ${HOGE_CNT}

    ・フガ数
    ${FUGA_CNT}

    以上

    EOD
    }

    mail_send

    exit 0
    [/bash]

    Comments are closed.