로그를 HTML 형식으로 캡처하고 이메일로 보내시겠습니까?

로그를 HTML 형식으로 캡처하고 이메일로 보내시겠습니까?

Oracle 데이터베이스를 종료하는 스크립트를 생성했지만 데이터베이스 종료가 성공적으로 완료되면 종료 출력을 보내지 못합니다. 이메일의 에코 부분만 수신하고 실제 종료 부분은 수신하지 않습니다. 종료 출력을 캡처하여 mailxemailid.

또한 이 로그를 HTML 형식으로 캡처하여 를 통해 보낼 수 있는 방법도 알려주십시오 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

노트:내 Bash 버전: GNU bash, 버전 4.1.2(1)-릴리스(x86_64-redhat-linux-gnu).

답변1

나는 보통 당신이 원하는 것을 다음과 같이 합니다:

#!/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]

위의 내용은 그 안에 있는 명령의 모든 출력을 캡처하는 하위 셸을 만듭니다. 그런 다음 mailx이 모든 출력을 직접 파이프합니다.

노트:EOF이 문서를 작업할 때 마크업 주위에 추가 공백이 있는지 특히 주의하세요. 끝에 잘못된 추가 공백이 있으면 EOF작동하지 않을 수 있습니다.

인용하다

관련 정보