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
두 가지 옵션이 있습니다.
cat
1 - 전체 로그 파일을 이메일에 추가하는 대신, x는 파일 끝부터 이메일에 포함할 줄 수를 tail -n x $RMAN_LOG_TSBKUP
사용하여 새로 추가된 줄만 포함할 수 있습니다 . cat $RMAN_LOG_TSBKUP
백업이 로그에 추가할 행 수를 대략적으로 알고 있는 경우 x를 최적화하고 이전 로그 데이터를 포함하지 않을 수 있습니다. 또는 grep
게시물 제목이나 날짜를 사용할 수 있습니다. 선택은 귀하에게 달려 있습니다.
2 - logrotate
. 일정이나 크기에 따라 로그가 순환되도록 구성할 수 있습니다. 일반적으로 에서 일일 cronjob으로 실행됩니다 . 이는 관리 가능한 방식으로 로그를 저장할 수 있으므로 아마도 가장 좋은 옵션일 것입니다. 기본 구성에는 다음 지시어가 포함될 수 있습니다. /etc/logrotate.d/
logrotate
logrotate
/etc/cron.daily/logrotate
/var/log/oracle-backup.log {
size 1M
rotate 12
monthly
compress
missingok
notifempty
}
지침은 설명이 필요 없지만 man logrotate
좋은 정보가 있습니다. 여기에 좋은 링크가 있습니다.Ubuntu 12.10에서 Logrotate를 사용하여 로그 파일을 관리하는 방법