#!/bin/bash -f WORKDIR=`pwd` YMDNUM=`date +%Y%m%d` HOSTNAME=`hostname` ############ SET TARGET DIRECTORY ############### #BAKDIR="${WORKDIR}/bkup_temp/blahome/kotsuki/" #DATDIR="/home/kotsuki/" BAKDIR="${WORKDIR}/bkup_temp/bkup_data1/kotsuki/" DATDIR="/data1/kotsuki/" ####### NO NEED TO CHANGE NUMDAT=`echo ${DATDIR} | sed -e "s%/%%g"` FNLDAT="../data_bkup/${YMDNUM}_${NUMDAT}_${HOSTNAME}.tar.gz" ################################################# EXTLIST=".f .f90 .F .c .cpp .pl .ctl .ncl \ .txt .shp \ .ctl .gs .gnu .cpt \ .sh .csh .ksh \ .in .inc .h \ Mkinclude Makefile " EXCEPT1="" LOGDAT=log.lsbkup ###################################################################################### echo '################################################################################' echo ' Back Up Target ' ${DATDIR} echo ' Back Up Stored ' ${BAKDIR} echo ' Back Up Final ' ${FNLDAT} echo ' Extentions ' ${EXTLIST} echo '################################################################################' ##### memo ##### # -f : file exist or not # -d : directory exist or not ###################################################################################### echo ' Generate Log Files on ' ${DATDIR} declare -i COUNT ###### Display All files with ====> find ${DATDIR} -name "*" -print ##### FNUMTMP=`find ${DATDIR} -name "*" -print` for FNUM1 in ` echo ${FNUMTMP}` ; do # echo ${DATDIR} ${FNUM1} # to check the file lists if [ ! -f ${FNUM1} ]; then ### to check directory or not # echo " this is directory " ${FNUM1} : # null command to work "if" else # echo " this is the file " ${FNUM1} DIR1=`dirname ${FNUM1}` DIR2=`echo ${DIR1} \ | sed -e "s%${DATDIR}%${BAKDIR}%"` FNUM2=`echo ${FNUM1} \ | sed -e "s%${DATDIR}%${BAKDIR}%"` COUNT=0 if [ ! -d ${DIR2} ]; then echo make new directory ${DIR2} mkdir -p ${DIR2} fi if [ ! -f ${DIR2}/${LOGDAT} ]; then ls -lsa ${DIR1} > ${DIR2}/${LOGDAT} # gen "ls -lsa" once a directory # echo loging files in this directory ${DIR2} : else # echo already existing log file ${DIR2}/${LOGDAT} : fi : fi done ###################################################################################### echo '################################################################################' echo ' Get Backup Files on ' ${DATDIR} ###### Display All Extentions ====> find ${DATDIR} -name "*" -print ##### for EXT1 in ` echo ${EXTLIST}` ; do echo " PRESENT EXTENTION is " ${EXT1} FNUMTMP=`find ${DATDIR} -name "*${EXT1}" -print` for FNUM1 in ` echo ${FNUMTMP}` ; do # echo " found " ${FNUM1} DIR1=`dirname ${FNUM1}` # echo " from " ${DIR1} DIR2=`echo ${DIR1} \ | sed -e "s%${DATDIR}%${BAKDIR}%"` # echo " into " ${DIR2} FNUM2=`echo ${FNUM1} \ | sed -e "s%${DATDIR}%${BAKDIR}%"` # echo " copied " ${FNUM2} if [ ! -d ${DIR2} ] ; then mkdir -p ${DIR2}; fi if [ ! -f ${FNUM2} ] ;then # echo " new " ${FNUM2} cp -p ${FNUM1} ${DIR2} # not exit : else # echo " rewrite " ${FNUM2} cp -u ${FNUM1} ${DIR2} # exit "-u" checks the final update date : fi : done done ###################################################################################### echo '################################################################################' echo ' Get Backup Files on ' ${DATDIR} echo ' Finalize Backups on ' ${DATDIR} into ${FNLDAT} if [ -f ${FNLDAT} ] ; then rm -v ${FNLDAT}; fi tar -zcvf ${FNLDAT} ${BAKDIR} > log.unko echo ' Finalized Backup Size (MB) ' `du -s -m ${BAKDIR}` echo ' Finalized Backup Size (MB) ' `du -s -m ${FNLDAT}` ############################################################### # rm -rf ${BAKDIR} # note: danger, recomend you to delete data manually