根據快照產生statpack報表的Shell指令碼
產生快照以後,就可以根據快照自動產生報表了,下面是自動產生報表的指令碼,並將報表傳送到了指定郵箱:
$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
$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 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 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 根據ip列表檢測主機狀態(shell指令碼)指令碼
- shell指令碼報錯:[: missing `]‘指令碼
- [ Shell ] 通過 Shell 指令碼匯出 CDL 網表指令碼
- 用Shell指令碼來解決DOS安全Linux伺服器生產指令碼Linux伺服器
- 根據年月份分表
- shell指令碼指令碼
- mybatis根據表逆向自動化生成程式碼MyBatis
- Docker實踐,Shell指令碼自動根據映象名和埠,啟動docker容器,執行springcloud專案Docker指令碼SpringGCCloud
- SAP RETAIL 如何根據分配表查到根據它建立的採購訂單?AI
- django | 根據 model 建立對應的表Django
- linux常用的shell指令碼Linux指令碼
- shell指令碼案例指令碼
- 常用shell指令碼指令碼
- Linux Shell指令碼Linux指令碼
- shell指令碼(6)-shell陣列指令碼陣列
- 如何根據生產環境mysql版本選擇合適的percona xtrabackup版本MySql
- 程式碼上線的shell指令碼指令碼
- [shell]shell指令碼實現每天自動抽取資料插入hive表指令碼Hive
- linux shell指令碼中 =~ 的作用Linux指令碼
- shell 指令碼加密 | shc指令碼加密
- 執行shell指令碼指令碼
- Shell 指令碼語句指令碼
- 初識shell指令碼指令碼
- 【指令碼】shell語法指令碼
- shell 指令碼寫法:指令碼
- 如何加密shell指令碼加密指令碼
- shell指令碼總結指令碼
- webpack根據需求配置打包模組及打包指令Web
- 什麼是Shell指令碼?Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- iOS逆向 Shell指令碼+指令碼重簽名iOS指令碼
- SQL server根據表名查詢表主鍵SQLServer
- 編寫shell指令碼的規範指令碼
- 幾例實用的Shell指令碼指令碼
- 如何編寫高效的 Shell 指令碼指令碼
- 如何呼叫python中的shell指令碼?Python指令碼
- shell指令碼的基礎知識指令碼
- Shell指令碼中的 /Dev/Null 用途指令碼devNull
- shell指令碼-免互動指令碼