#!/bin/sh # archive the ${REP} repository ######## # EXIT # ######## do_exit() { Mail -s "CVS run2 backup" kreymer@fnal.gov < ${HOME}/archive/archive.log mv ${HOME}/archive/archive.log ${HOME}/archive/${REP}/${YEAR}/${DATIME}.log exit } ######### # start # ######### REP=run2 DATIME=`date +%Y%m%d%H` YEAR=`date '+%Y'` TARFILE=/cdf/scratch/cdfcvs/${REP}/${YEAR}/${DATIME}.tar echo " Enter `date '+%Y %m %d %H:%M:%S'` " if [ -r "${HOME}/.shutdown" ] then echo " OOPS, found .shutdown file, quitting " do_exit fi mkdir -p ${HOME}/archive/${REP}/${YEAR} if [ -r "${HOME}/archive/${REP}/${YEAR}/${DATIME}.log" ] then echo " OOPS, ${REP} log file already exists, quitting " ls -l ${HOME}/archive/${REP}/${YEAR}/${DATIME}.log do_exit fi ######## # size # ######## # How big are we ? This also pulls directories into cache # Add 100 MBytes for safety USING=`du -sk ${HOME}/${REP} | cut -f1` SIZE=`expr ${USING} + 100000` #echo " OK, used ${USING} " kbytes free disk echo " " echo " OK, need ${SIZE} " kbytes free disk ######## # disk # ######## free=`df -k -P /cdf/scratch/cdfcvs | tail -1 | tr -s ' ' | cut -f4 -d' '` if [ ${free} -gt ${SIZE} ] then echo " OK, have ${free} kbytes free disk " else echo " OOPS , ${free} is less than needed, bailing out " do_exit fi ########### # tarfile # ########### if [ -r "${TARFILE}" ] then echo " OOPS , already have ${TARFILE}, bailing out " ls -l ${TARFILE} do_exit fi ####### # tar # ####### echo "Nightly backups `date '+%Y %m %d %H:%M:%S'` " > ${HOME}/.shutdown cd ${HOME} echo " " echo " Start `date '+%Y %m %d %H:%M:%S'` " echo " " /usr/bin/time -p tar cf ${TARFILE} \ .admin \ .bashrc \ .cvshrc \ .forward \ .k5login \ .ssh \ LOG \ archive \ ark \ bin \ crontab.dat \ cvshlog \ ${REP} echo " " echo " Tarred `date '+%Y %m %d %H:%M:%S'` " rm ${HOME}/.shutdown TARF1=`du -sk ${TARFILE}` echo " " /usr/bin/time -p gzip ${TARFILE} echo " " TARF2=`du -sk ${TARFILE}.gz` echo " Zipped `date '+%Y %m %d %H:%M:%S'` " echo " " echo "${TARF1}" echo "${TARF2}" do_exit # 2002 06 24 kreymer # Added top level files and misc directories