Captura de logs em HTML e envio via email?

2

Eu criei um script para encerrar o banco de dados Oracle, mas não consegui enviar a saída do desligamento enquanto o desligamento do banco de dados foi concluído com êxito. Eu só recebo e-mail da parte de eco, mas não a parte real do desligamento. Eu quero capturar a saída do desligamento e enviá-lo via mailx para o meu emailid .

Além disso, deixe-me saber como capturar esse log no formato HTML e enviá-lo via emailid .

LOG_FILE="Shutdown_of_$ORACLE_SID_'hostname'_Completed_'date "+%Y_%b_%d"'.txt"   
echo "">>$LOG_FILE  
echo "">>$LOG_FILE  
echo " =========================================================  ">>$LOG_FILE
echo "">>$LOG_FILE
echo " Step  : SHUTTING Down of database                          ">>$LOG_FILE  
echo " Start : 'date '                                            ">>$LOG_FILE    
echo " ========================================================   ">>$LOG_FILE

echo "">>$LOG_FILE  
echo "">>$LOG_FILE  

export SHUT=/home/oracle/SHUT.txt  
>$SHUT  
sqlplus -s / as sysdba << EOF  
set feedback off verify off termout off linesize 120 pagesize 500;  
spool $SHUT  
shut immediate;  
spool off;  
exit;  
EOF  

echo "">>$LOG_FILE  
echo " =========================================      "  >>$LOG_FILE
echo " Status : Completed                             ">>$LOG_FILE
echo " End   : 'date'                                 ">>$LOG_FILE
echo " =========================================      ">>$LOG_FILE
echo "">>$LOG_FILE

mailx -s "Shutdown_of_'$ORACLE_SID'_'hostname'_Completed_'date "+%Y_%b_%d"' " [email protected]  < $LOG_FILE

NOTA: Minha versão do Bash: GNU bash, versão 4.1.2 (1) -release (x86_64-redhat-linux-gnu).

    
por James 19.07.2018 / 07:30

1 resposta

2

Eu geralmente faço o que você quer assim:

#!/bin/bash

{
cat <<-EOF


 =========================================================  

 Step  : SHUTTING Down of database                          
 Start : 'date '                                            
 ========================================================   



EOF

export SHUT=/home/oracle/SHUT.txt  
>$SHUT 

sqlplus -s / as sysdba <<-EOF  
set feedback off verify off termout off linesize 120 pagesize 500;  
spool $SHUT  
shut immediate;  
spool off;  
exit;  
EOF

cat $SHUT

cat <<-EOF

 =========================================
 Status : Completed
 End    : $(date)
 =========================================

EOF

} | mailx -s "Shutdown_of_'$ORACLE_SID'_$(hostname)_Completed_$(date "+%Y_%b_%d") " \
      [email protected]

O acima cria uma subshell que irá capturar toda a saída dos comandos dentro dela. Em seguida, canalizamos toda essa saída para mailx diretamente.

NOTA: Preste atenção especial a qualquer espaçamento adicional em torno dos marcadores EOF ao usar heredocs. Um espaço extra errante no final do EOF pode fazer com que ele não funcione.

Referências

por 19.07.2018 / 07:50