#!/bin/bash
# Script name : backup script
# plusha@gpl.snu.ac.kr


# directory names
dirList=( \
"./modeling/Cagniard_deHoop/" \
"./modeling/engmath/" \
)
# exclude dir "/" should be "\/"
excDirList=( \
"lib\/UMF" \
"lib\/slatec" \
"lib\/SU" \
"lib\/dms" \
"FWM2DA" \
)
# file extensions
extList=( \
"\.f$" \
"\.f90$" \
)

# backup file base name - basename only, output: backupfileYYYYMMDD-HHMM.tgz
backupdir="/home/happywan/backup/"
backupfilebase=$backupdir"backup"
Date=`date +%Y%m%d-%H%M`
backupfile="$backupfilebase$Date.tgz"

logfile=$backupdir"gplbackup.log"
tmpfile=$backupdir"tmpBackupList"
tmpfile0=${tmpfile}0

# log
echo "" >> $logfile
date >> $logfile

# delete old files
if [ `date +%H` -eq '15' ]
then
	echo "deleting $backupfilebase*.tgz files" >> $logfile
	rm ${backupfilebase}20*.tgz >> $logfile 2>&1
	backupfile=$backupdir"Backup.$Date.tgz"
fi

# log
echo "backup file: $backupfile" >> $logfile
# include dir
for dir in ${dirList[@]}
do
	for ext in ${extList[@]}
	do
		find $dir | grep $ext >> ${tmpfile0}
	done
done
# exclude dir
for exc in ${excDirList[@]}
do
	sed "/$exc/"d ${tmpfile0} > ${tmpfile}
	mv $tmpfile $tmpfile0
done
# backup
tar -zcf $backupfile --files-from $tmpfile0 >> $logfile 2>&1

echo 'size:' `stat -c %s $backupfile` 'bytes' >> $logfile
rm ${tmpfile0}

