#!/bin/bash
#获取linux服务器上/dev/sda7的磁盘空间大小
DISK_SIZE=`df -k|grep /dev/sda7 |awk '{ print substr($5,1,2) }'`export DISK_SIZE
LANG=zh_CN.UTF-8export LANG
#判断磁盘空间是否大于85% 如果大于85%就直接退出执行s
if [ $DISK_SIZE -gt 85 ]; then echo DISK_SIZE is $DISK_SIZE over 85 exitelse echo DISK_SIZE=$DISK_SIZEfi
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#oralce安装的路径ORACLE_BASE=/opt/app/oracleexport ORACLE_BASE
ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1export ORACLE_HOME
#oracle安装的服务名称
ORACLE_SID=metardbexport ORACLE_SID
#BAK_PATH is a path that store your exp fileBAK_PATH="/orabak"
#LOG_FILE is a file that recorde the results of exportLOG_FILE="$BAK_PATH"/`date +%Y%m%d`_brief.log
#Define the exp userUSER=system
#Define the exp user's passwordPASSWD=metarnet
#Determine the current user nameCUSER=`id |cut -d"(" -f2 | cut -d ")" -f1`
#Define the retention days of your backup fileDAYS=365
#******************************************************************#It is unnecessary to edit the the below text in normal condition.*#******************************************************************
echo "The start time is: "`date` >> $LOG_FILEecho >> $LOG_FILE
if [ $DISK_SIZE -gt 85 ]; then echo DISK_SIZE is $DISK_SIZE over 85|tee -a $LOG_FILE exitelse echo DISK_SIZE=$DISK_SIZE|tee -a $LOG_FILEfi
#Define the backup file nameBAK_FILE=metardb_`date +%Y%m%d_%w`_full.dmp
#Define the backup log file nameBAK_LOG=metardb_`date +%Y%m%d_%w`_full.log
#Define your backup commandCMD_STR="setenv ORACLE_HOME $ORACLE_HOMEexp $USER/$PASSWD@$ORACLE_SID file=$BAK_PATH/$BAK_FILE log=$BAK_PATH/$BAK_LOG full=y"
#Begin backupecho "Backup is started" >>$LOG_FILEecho "......">>$LOG_FILE
if [ "$CUSER" = "root" ]then su - oracle -c "$CMD_STR" >> $LOG_FILE RSTAT=$?else /usr/bin/csh -c "$CMD_STR" >> $LOG_FILE RSTAT=$?fi
if [ "$RSTAT" = "0" ]then echo "Backup to Hard disk is ended successful!" >> $LOG_FILEelse echo "Notice! Backup hard disk is ended unsuccessful!">> $LOG_FILEfi
#compress#yestoday=`date +%D | awk -F/ '{s=$2-2}{printf"20ddd/n", $3,$1,s}'`cd $BAK_PATH#CMP_FILE="yujing_"$yestoday"_full.dmp"echo "Compress "$BAK_FILE >>$LOG_FILEgzip $BAK_FILE
#Delete 3 days ago fileOLDFILE=metardb_`date -d '3 days ago' +%Y%m%d_%w`_full.dmp.gzOLDLOG=metardb_`date -d '3 days ago' +%Y%m%d_%w`_full.logrm -rf /orabak/$OLDFILErm -rf /orabak/$OLDLOG
echo >>$LOG_FILEecho "Backup to Hard disk End time is: "`date`>>$LOG_FILE