#!/bin/bash
DBBACKDIR="/home/oracle/fm/fm_backup" #数据库数据本机存放位置,根据情况自行修改
LOGDIR="/home/oracle/fm/fm_backup/LOG.txt" #简单日志输出
#检查备份目录是否存在和是否有读写权限
if [ -f "$LOGDIR" ]; then #检查日志输出文件
chmod a+w $LOGDIR #设置读写权限
else
touch $LOGDIR
chmod a+w $LOGDIR
fi
if [ -a "$DBBACKDIR" ]; then #检查数据库备份目录
chmod a+w $DBBACKDIR #设置权限
else
mkdir -p $DBBACKDIR
chmod a+w $DBBACKDIR
fi
#动态生成当前日期,作为备份文件名中一部分以区分文件
year=`date +%Y`
month=`date +%m`
day=`date +%d`
now=`date +%Y-%m-%d` #获取系统时间
#############备份数据库################
echo "Database backup starts ......" >> $LOGDIR #写日志
cd $DBBACKDIR
su -l oracle -c "exp fmtest/fmtest@gkjrfm file= $DBBACKDIR/fmwork_cdb_$now.dmp log= $DBBACKDIR/fmwork_$now.log owner=fmtest statistics=none" #切换到oracle用户,导出数据库
gzip $DBBACKDIR/fmwork_cdb_$now.dmp #压缩打包数据库备份
find $DBBACKDIR -mtime +7 -type f -name "fmwork*" -exec rm {} \; #删除7天以上的数据库备份数据
echo "Database backup end!" >> $LOGDIR #写日志
echo "############### END ################" >> $LOGDIR
echo " " >> $LOGDIR