shell脚本,awr_report.sh 这是每1小时生成一次awr报告的脚本,并删除7天前的awr(根据实际情况修改)

    先创建一个awr存放路径
    mkdir -p /home/oracle/$ORACLE_SID

    cat /home/oracle/script/awr_report.sh
    #!/bin/sh
    ORACLE_SID=$1
    export ORACLE_SID
    source ~/.bash_profile
    WORKPATH=/home/oracle/$1
    AWR_FORMAT=html
    NUM_DAYS=1

    MAX_SNAP_ID=sqlplus -S / as sysdba << EOF<br />set heading off trimspool on feedback off<br />SELECT trim(max(SNAP_ID)) FROM DBA_HIST_SNAPSHOT;<br />EOF
    export MAX_SNAP_ID

    MIN_SNAP_ID=expr $MAX_SNAP_ID - 1
    export MIN_SNAP_ID
    echo $MIN_SNAP_ID

    datetime=date +%Y%m%d%H
    export datetime
    AWRLOG=$WORKPATH/AWR$1_${datetime}.html
    export AWR_LOG
    echo $AWR_LOG

    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
    find /home/oracle/$1/ -name ‘*.html’ -mtime +7 -exec rm -f {} \;

    crontab 里面添加执行时间
    10 /1 /home/oracle/script/awr_report.sh SID