SHELL脚本学习-自动生成AWR报告

时间:2021-12-05 01:18:17

自动生成AWR报告,每个小时生成一次。

#编辑脚本:vim awr_auto.sh  #oracle用户下执行
#!/bin/bash
# 每个小时执行一次,自动生成AWR报告
source ~/.bash_profile
AWR_FORMAT=html
NUM_DAYS=
ONE_HOUR_AGO=`date -d -1hour +%Y%m%d_%H`
CURRENT_TIME=`date +%H`
MAX_SNAP_ID=`sqlplus -S / as sysdba << EOF
set heading off trimspool on feedback off
SELECT trim(max(SNAP_ID)) FROM DBA_HIST_SNAPSHOT;
EOF`
MIN_SNAP_ID=`expr $MAX_SNAP_ID - `
AWR_LOG=/tmp/AWR_$ONE_HOUR_AGO-$CURRENT_TIME.html
echo -e "$AWR_FORMAT\n$NUM_DAYS\n$MIN_SNAP_ID$MAX_SNAP_ID\n$AWR_LOG\n"|(sqlplus -S / as sysdba @?/rdbms/admin/awrrpt.sql) > /dev/null #设置执行计划
crontab -e
* * * * /opt/awr_auto.sh