
내 Oracle 백업은 백업이 완료되었으며 패턴을 찾는 데 따라 성공 또는 실패했음을 알리는 전자 메일을 보냅니다. 백업 로그가 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
. 기본 구성 파일을 만들어서 넣으면 모든 것이 /etc/logrotate.d/
자동 logrotate
으로 처리됩니다. 일정이나 크기에 따라 순환되도록 로그를 구성할 수 있습니다. logrotate
일반적으로 에서 일일 cronjob으로 실행됩니다 /etc/cron.daily/logrotate
. 이는 관리 가능한 방식으로 로그를 저장할 수 있으므로 아마도 가장 좋은 옵션일 것입니다. 기본 구성에는 아래 지시어가 포함될 수 있습니다.
/var/log/oracle-backup.log {
size 1M
rotate 12
monthly
compress
missingok
notifempty
}
지시어는 꽤 자명하지만 man logrotate
좋은 정보를 담고 있으며 여기에 좋은 링크가 있습니다.Ubuntu 12.10에서 Logrotate를 사용하여 로그 파일을 관리하는 방법