#!/bin/ksh #******************************************************************************* # INITIALIZATION #******************************************************************************* typeset -i i_cnt typeset -i i_totcnt export s_parmcount=$# export s_myName=`basename $0` # remember my name export s_sek=`date +'%S'` export s_min=`date +'%M'` export s_std=`date +'%H'` export s_tag=`date +'%d'` export s_mon=`date +'%m'` export s_jhr=`date +'%Y'` export s_now="$s_jhr$s_mon$s_tag$s_std$s_min$s_sek" export s_parmcountExpected=1 # initiate expected number of input parameters export s_rc=0 # initiate return code export s_naspath=/app/orcl/oradata/ORCL/dump/DBA export s_tmppath=${s_naspath}/tmp export s_zipfile=resources.zip export s_filedir=$(echo $s_zipfile | sed -e's/\.zip//') #------------------------------------------------------------------------------- # INPUT #------------------------------------------------------------------------------- echo "Please enter database environment (e.g. XU05): \c" read s_dbenv export s_dbenv=$(echo $s_dbenv | tr '[:lower:]' '[:upper:]') export s_filedirnew=${s_dbenv}-${s_now} #------------------------------------------------------------------------------- # PROGRAMS #------------------------------------------------------------------------------- unalias gunzip; alias gunzip='/usr/bin/gunzip' unalias tar; alias tar='/bin/tar' unalias unzip; alias unzip='/usr/bin/unzip' #------------------------------------------------------------------------------- # VALIDATION #------------------------------------------------------------------------------- # check parm count if [[ $s_parmcount -gt $s_parmcountExpected ]] then print -u2 "`basename $0`: USAGE: `basename $0` <-v>!" print -u2 " -v = verbose mode" exit 1 else export s_par_verbose=$1 fi # check verbose mode if [ "$s_par_verbose" = "-v" ] then export s_verbose=true else export s_verbose=false fi # check file exists if [ -f $s_zipfile ] then if $s_verbose; then echo "File <$s_zipfile> found in path <$s_naspath> - ok" fi else echo "ERROR - File <$s_zipfile> is missing in path <$s_naspath>" exit fi #******************************************************************************* # MAIN #******************************************************************************* mkdir -p $s_tmppath 2>/dev/null #-------------------- # change to a known direcotry #-------------------- if $s_verbose; then echo "Changing to path <$s_naspath>" fi cd $s_naspath #-------------------- # unzip zipfile #-------------------- if $s_verbose; then echo "Unzipping file <$s_zipfile>" fi #unzip $s_zipfile >$s_tmppath/undo.log unzip $s_zipfile | while read s_line do let i_cnt=$i_cnt+1 let i_totcnt=$i_totcnt+1 if [[ $i_cnt -gt 100 ]] then i_cnt=0 echo ".\c" fi done echo "\n${i_totcnt} files unzipped" #-------------------- # remove zipfile #-------------------- if $s_verbose; then echo "Removing file <$s_zipfile>" fi rm $s_zipfile #-------------------- # move file directory to dbenv-with-timestamp-direcotory #-------------------- if $s_verbose; then echo "Moving dir <$s_filedir> to newdir <$s_filedirnew>" fi mv $s_filedir $s_filedirnew ln -s $s_filedirnew $s_filedir #-------------------- # create cleanup file #-------------------- s_cleanupfile=3cleanup-${s_filedirnew}.ksh echo "tar cvf ${s_filedirnew}.tar ${s_filedirnew}/" > $s_cleanupfile echo "gzip -9 ${s_filedirnew}.tar" >> $s_cleanupfile echo "mv ${s_filedirnew}.tar.gz ARCHIVE/" >> $s_cleanupfile echo "rm -rf ${s_filedirnew}/" >> $s_cleanupfile echo "rm ${s_filedir}" >> $s_cleanupfile echo "rm 3cleanup-*.ksh" >> $s_cleanupfile chmod 700 $s_cleanupfile #-------------------- # done... #-------------------- echo "Preparations completed. Please change to directory <$s_filedirnew> and go ahead..." #echo "cd $s_filedirnew" #******************************************************************************* # FINE #******************************************************************************* exit