成功または失敗の電子メールを送信するスクリプト

成功または失敗の電子メールを送信するスクリプト

My Oracle Backupは、検出したパターンに従ってバックアップが完了したか、成功したか、失敗したかを示す電子メールを送信します。バックアップログは14mgに非常に大きくなりました。ファイルが 10 MB より大きいため、Exchange サーバーはメッセージを削除します。

この問題を解決するのに役立ちます。つまり、失敗した場合は、モード「ORA-」または「RMAN-」エラーコードを含む電子メールを送信するか、成功または失敗を示す電子メールを送信するためにこのプロセスが必要です。

注:これはコードの一部にすぎません。ご質問がある場合はお知らせください。

#### Check for RMAN/ORA Errors and notify accordingly

RMANERROR=`egrep "ORA-|RMAN-" $RMAN_LOG_TSBKUP`
RMANWARN=`egrep "ORA-|RMAN-" $RMAN_LOG_TSBKUP|egrep -vE "$EGREP_EXCLUDE"`


if [ -z "$RMANERROR" ]
then
   echo "No Errors"
   cat $RMAN_LOG_TSBKUP |mailx -s "SUCCESS - DW_TS_BACKUP Complete" `cat $EMAIL_SUCCESS_DIST`
elif [ -z "$RMANWARN" ]
then
   echo "No Errors, but Warnings"
   cat $RMAN_LOG_TSBKUP |mailx -s "SUCCESS (with ignorable WARNINGS) - DW_TS_BACKUP Complete" `cat $EMAIL_SUCCESS_DIST`
else
   echo "Errors Found !!!!"
   mailx -s "FAILURE - DW_TS_BACKUP Complete" `cat $EMAIL_FAIL_DIST`
fi
}

ベストアンサー1

2つのオプションがあります。

cat1 - ログファイル全体を電子メールに追加する代わりに、xはファイルの末尾から電子メールに含める行数をtail -n x $RMAN_LOG_TSBKUP使用して新しく追加された行のみを含めることができます。cat $RMAN_LOG_TSBKUPバックアップがログに追加する行の数を大まかに知っている場合は、xを最適化して古いログデータを含めないことがあります。または、grep投稿のタイトルまたは日付を使用できます。選択はあなた次第です。

2 - logrotate。スケジュールまたはサイズに基づいてログが循環するように設定できます。通常、毎日のcronjobとして実行されます。これは管理可能な方法でログを保存できるため、おそらく最高のオプションです。デフォルト構成には、次のディレクティブを含めることができます。 /etc/logrotate.d/logrotatelogrotate/etc/cron.daily/logrotate

 /var/log/oracle-backup.log {
  size 1M
  rotate 12
  monthly
  compress
  missingok
  notifempty
}

指示は説明を必要としませんが、man logrotate良い情報があります。ここに良いリンクがあります。Ubuntu 12.10でLogrotateを使用してログファイルを管理する方法

おすすめ記事