#! /bin/bash BAK=/v/120/bak if [ $# -gt 1 ]; then echo "Usage: ${0} full (full backup)" echo " ${0} (incremental backup)" exit 1 fi if [ $# -eq 1 ] && [ ! $1 = full ]; then echo "Usage: ${0} full (full backup)" echo " ${0} (incremental backup)" exit 1 fi cd $BAK last=`ls paulo.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].tgz 2>/dev/null |tail -1` datelast=`echo $last | cut -c7-16` TODAY= if [ "$1" = "full" ]; then DATE=`date +%Y-%m-%d` else DATE=$datelast; TODAY=.`date +%Y%m%d` fi if [ "$datelast" = "$NULL" ] && [ ! "$1" = "full" ]; then echo "No full backup to do an incremental one over it. Bye!" exit 1 fi cd /l/011 tar czpBv \ --file=${BAK}/conf.${DATE}${TODAY}.tgz \ --label="`hostname` conf $DATE" \ --listed-incremental=${BAK}/conf.${DATE}.ref \ conf cd /l/011/home for DIR in *; do tar czBpv \ --file=${BAK}/${DIR}.${DATE}${TODAY}.tgz \ --label="`hostname` $DIR $DATE" \ --listed-incremental=${BAK}/${DIR}.${DATE}.ref \ $DIR done exit 0