성공 또는 실패 이메일을 보내는 스크립트

성공 또는 실패 이메일을 보내는 스크립트

My Oracle Backup은 발견한 패턴에 따라 백업이 완료되었는지, 성공했는지 또는 실패했는지를 알리는 이메일을 보냅니다. 백업 로그가 14mg으로 매우 커졌습니다. 파일이 10MB보다 크기 때문에 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

두 가지 옵션이 있습니다.

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를 사용하여 로그 파일을 관리하는 방법

관련 정보