オラクルのエクスポートデータを日別でサーバ5世代とS3にも同じものを5世代残すような作業を行い、1日1回動く一連のシェルを作成しました。
※s3cmdが入ってること前提です。

#!/bin/sh

unalias -a

##これは対応するデータベースのNLS_LANGを指定する
##SELECT PARAMETER,VALUE FROM NLS_DATABASE_PARAMETERS where PARAMETER='NLS_NCHAR_CHARACTERSET'
##の結果
export NLS_LANG=AMERICAN_AMERICA.JA16EUC

##オラクルのパスを通す
PATH=$PATH:$HOME/bin
export PATH
# variables for oracle database environment
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
ORACLE_SID=hoge
SAVE_LLP=
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$SAVE_LLP
PATH=$PATH:$ORACLE_HOME/bin/
export ORACLE_BASE ORACLE_HOME ORACLE_SID NLS_LANG LANG LD_LIBRARY_PATH PATH

##日付を取得
TODAY=`date '+%y%m%d'`
echo "dumpstart `date '+%y/%m/%d %H:%M:%S'`"

##エクスポートするユーザーの指定
SID="hoge"
USID="hogeuser"
PWD="hogepass"

##dumpされるファイル名を指定
dumpfile=/u01/app/oracle/backup/dump/${SID}-${USID}-${TODAY}.dump

##エクスポート
ORACLE_SID=$SID
export ORACLE_SID
exp ${USID}/${PWD}@${SID} file=${dumpfile} direct=y

##エクスポートするファイルをbzip2で圧縮する
echo "# bzip2 start"
bzip2 --fast -f ${dumpfile}

echo "# dump end `date '+%y/%m/%d %H:%M:%S'`"

##圧縮後に5世代分だけを残す他は削除
find /u01/app/oracle/backup/dump/ -type f -mtime +4 -exec /bin/rm {} ;

##S3へ転送
echo "# dump sync `date '+%y/%m/%d %H:%M:%S'`"
s3cmd sync --delete /u01/app/oracle/backup/dump s3://bkup.hoge.com/oracle/hoge/

上記で、万が一サーバーもしくはデータセンターが落ちても、S3に毎日5世代データが残ってるので安心です。

こちらの記事はなかの人(kenjionsoku)監修のもと掲載しています。
元記事は、こちら