根據快照產生statpack報表的Shell指令碼

ljm0211發表於2012-07-02
產生快照以後,就可以根據快照自動產生報表了,下面是自動產生報表的指令碼,並將報表傳送到了指定郵箱:
$more spreport.sh
#!/bin/ksh
# creator: piner
# function: get statpack report
date
#設定環境變數
export ORACLE_SID=test
export ORACLE_HOME=/u01/oracle/product/9.2
export NLS_LANG=american_america.zhs16gbk

#設定執行是變數
SQLPLUS=$ORACLE_HOME/bin/sqlplus
LOGFILE=/home/oracle/logs/spreport.txt     #日誌檔案
REPFILE=/home/oracle/worksh/spreport.lst     #報表檔案

#獲得最後2個快照點
$SQLPLUS -S perfstat/perfstat <set echo off
set feedback off
set heading off
set pagesize 0
set linesize 1000
set trimspool on
spool $LOGFILE
select snap_id from
(select snap_id from stats\$snapshot where instance_number=1
order by snap_time desc) where rownum<3;
spool off;
set echo on
set feedback on
set heading on
exit
EOF

line1=`tail -1 $LOGFILE`
line2=`head -l $LOGFILE`
echo "line1 is"$line1
echo "line2 is"$line2

#產生報表
rm $REPFILE
$SQLPLUS -S perfstat/perfstat <define begin_snap=$line1
define end_snap=$line2
define report_name=$REPFILE
@?/rdbms/admin/spreport.sql
exit
EOF

#傳送郵件
mail -s `date +%Y%m%d`'-'`hostname`spreport test@mail.com < $REPFILE

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-734299/,如需轉載,請註明出處,否則將追究法律責任。

相關文章