LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Tar with --newer option tarring all dirs (https://www.linuxquestions.org/questions/linux-newbie-8/tar-with-newer-option-tarring-all-dirs-71165/)

jlangelier 07-09-2003 12:31 AM

Tar with --newer option tarring all dirs
 
Found this great script to backup my linux... it uses tar with the --newer option , and works great, except it includes every directory in the tar file, even if the directory was not changed. (i.e. it includes a list of every directory, but not files, unless the file satisfies the --newer directive)

Makes it hard to peruse the tar file to see what changed between backups. Anyone know how to get tar to not include unchanged directories?



The script follows, not only to illustrate my problem, but because it's a great, simple backup script that I can recommend. Been using it a week now and it works like a charm. Set it to run as a cron job every day, and I get the satisfaction of having a simple, daily backup.

(PS... I know I'm backing up alot of stuff I don't need to... I'll tweak it a bit once I start running out of space on my windows disk or get sick of swapping CD-R's ;)


#!/bin/sh
#
# Excepted from:
# ==============
# Date: 01 May 2001 18:24:21 -0400
# From: Jens Gecius <jens@gecius.de>
# To: jeroen@gecius.de
# Cc: debian-user@lists.debian.org
#
#
# full and incr backup script
# created 27 Sep 99
# Based on a script by Daniel O'Callaghan <danny@freebsd.org>

#Change the 5 variables below to fit your computer/backup

COMPUTER=darkstar # name of this computer
DIRECTORIES="/etc /home /bin /lib /opt /root /sbin /usr /var/log " # directories to backup
BACKUPDIR=/windows/linback # where to store the backups
TIMEDIR=/windows/linback/last-full # where to store time of full backup
TAR=/bin/tar # name and locaction of tar

#You should not have to change anything below here

SRC_CONF=/usr/src/linux/.config
PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a` # Day of the week e.g. Mon
DOM=`date +%d` # Date of the Month e.g. 27
DM=`date +%d%b` # Date and Month e.g. 27Sep

# On the 1st of the month a permanet full backup is made
# Every Sunday a full backup is made - overwriting last Sundays backup
# The rest of the time an incremental backup is made. Each incremental
# backup overwrites last weeks incremental backup of the same name.
#
# if NEWER = "", then tar backs up all files in the directories
# otherwise it backs up files newer than the NEWER date. NEWER
# gets it date from the file written every Sunday.

#mount -o remount,rw /backups

if [ $DOM = "01" ]; then # monthly full backup
NEWER=""
$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DM.tgz $DIRECTORIES $SRC_CONF
fi

if [ $DOW = "Sun" ]; then # weekly full backup
NEWER=""
NOW=`date +%d-%b`
echo $NOW > $TIMEDIR/$COMPUTER-full-date #update full backup date
$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DOW.tgz $DIRECTORIES $SRC_CONF

else #make incremental backup - overwrite last weeks
NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`" #get date of last full backup
$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DOW.tgz $DIRECTORIES $SRC_CONF
fi

##mount -o remount,ro /backups
#
# end of file


All times are GMT -5. The time now is 08:55 PM.