crontab:
20 5,12,20 * * * sh /u01/autorun/autoexp 1>/u01/autorun/log/autoexp.log 2>>/u01/autorun/log/autoexp.bad
#30 7 * * * sh /u01/autorun/chkdb.sh 1>/u01/autorun/log/chkdb.log 2>>/u01/autorun/log/chkdb.bad
sh:
esvcdb01</u01/autorun>$cat autoexp
#!/bin/sh
cd /u01/backup
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=esvcdb01;export ORACLE_SID
FILENAME=`date +%Y%m%d%H`
NLS_LANG=american.AL32UTF8;export NLS_LANG
/u01/product/oracle/bin/exp system/oratem file='esvc'$FILENAME full=y log=esvc$FILENAME.log
gzip 'esvc'$FILENAME'.dmp'
find /u01/backup -atime +1 -exec rm -f {} /;
chkdb.sh:
[root@esvcdb01 autorun]# cat chkdb.sh
#!/bin/sh
export ORACLE_HOME=/u01/product/oracle;
export ORACLE_OWNER=oracle;
export ORACLE_SID=esvcdb01
ALERT_FILE=/u01/product/admin/esvcdb01/bdump/alert_esvcdb01.log
REPORT=/tmp/report.log
TEMP_FILE=/tmp/temp.log
SUFFIX=`date +%a`
echo '-------------------- Alert log Begin --------------------' > $REPORT
echo '' >>$REPORT
awk '/ORA-|not|error/' $ALERT_FILE >> $REPORT
echo '-------------------- Alert log End --------------------' >> $REPORT
echo '' >> $REPORT
echo '' >> $REPORT
echo '-------------------- Disk space Begin ------------------' >> $REPORT
echo '' >>$REPORT
df -h >>$REPORT
echo '-------------------- Disk space End ------------------' >> $REPORT
echo '' >> $REPORT
echo '' >> $REPORT
echo '------------------- Tablespace usage ------------------- ' >> $REPORT
/u01/product/oracle/bin/sqlplus -S "/as sysdba" <<EOF
set feedback off
set trimspool on
spool $TEMP_FILE
SELECT UPPER (f.tablespace_name) TABLESPACE, d.tot_grootte_mb "Total(M)",
f.total_bytes "Unused(M)",
TO_CHAR (ROUND ( 100
- (d.tot_grootte_mb - f.total_bytes)
/ d.tot_grootte_mb
* 100,
2
),
'990.99'
) "Free(%)"
FROM (SELECT tablespace_name,
ROUND (SUM (BYTES) / (1024 * 1024)) total_bytes
FROM SYS.dba_free_space
GROUP BY tablespace_name) f,
(SELECT dd.tablespace_name,
ROUND (SUM (dd.BYTES) / (1024 * 1024), 2) tot_grootte_mb
FROM SYS.dba_data_files dd
GROUP BY dd.tablespace_name) d
WHERE d.tablespace_name = f.tablespace_name
ORDER BY 4;
spool off;
exit;
EOF
cat $TEMP_FILE >> $REPORT
echo '------------------- Tablespace usage End ------------------- ' >> $REPORT
echo '' >> $REPORT
echo '' >> $REPORT
#cut log file
/bin/cp $ALERT_FILE $ALERT_FILE.$SUFFIX
/bin/cat /dev/null > $ALERT_FILE
echo 'Truncate Oracle log successfully!' >> $REPORT
#mail -s 'CSD TEST db daily report' -c jackie.jq.chen@foxconn.com sps.jerryliu@foxconn.com < $REPORT
mail -s 'CSD TEST db daily report' sps.jerryliu@foxconn.com < $REPORT