保守監視等で、よく利用するのだが毎回忘れるので備忘録的に。
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]
最近のコメント