
Meu backup Oracle envia um e-mail com notificação de que o backup foi concluído e foi bem-sucedido ou falhou, dependendo de encontrar algum padrão. Nossos logs de backup estão ficando muito grandes – 14 mg. Como esse arquivo é maior que 10 MB, essas mensagens estão sendo descartadas pelos servidores Exchange.
Por favor me ajude a corrigir esse problema, ou seja, preciso que esse processo envie apenas um e-mail com os códigos de erro padrão "ORA-" ou "RMAN-" (em caso de falha) ou apenas um e-mail indicando sucesso ou falha.
NOTA: esta é apenas uma parte do código - entre em contato se tiver alguma dúvida.
#### 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
}
Responder1
Vejo 2 opções:
1 - Em vez de cat
enviar todo o arquivo de log no e-mail, você pode incluir apenas as linhas recém-anexadas usando tail -n x $RMAN_LOG_TSBKUP
em vez de cat $RMAN_LOG_TSBKUP
onde x é o número de linhas do final do arquivo a serem incluídas no e-mail. Se você souber aproximadamente quantas linhas o backup adicionará ao log, poderá refinar x e evitar a inclusão de dados de log antigos. Ou você pode grep
obter um cabeçalho ou data de log, depende de você.
2 - Implemente o versionamento de log com logrotate
. Crie um arquivo de configuração básico, coloque-o /etc/logrotate.d/
e logrotate
cuidará de tudo para você. Você pode configurar a rotação dos logs com base em uma programação ou por tamanho. logrotate
normalmente é executado como um cronjob diário de /etc/cron.daily/logrotate
. Esta é provavelmente a melhor opção, pois permitirá salvar logs de uma forma gerenciável. Uma configuração básica pode incluir as diretivas abaixo.
/var/log/oracle-backup.log {
size 1M
rotate 12
monthly
compress
missingok
notifempty
}
As diretivas são bastante autoexplicativas, mas man logrotate
contêm boas informações e aqui está um bom linkComo gerenciar arquivos de log com Logrotate no Ubuntu 12.10