if [ $? -eq 0 ] && [ -s $TARFILE ]; then
# File is >0 in size and neither cat or tar tzvf failed; we assume it worked.
-
- if ! scp root@$computer:$incrementalsnar $SNARFILE.tmp; then
- diemsg "Could not copy .incremental.snar from $computer"
+
+ if [ "$incrementalsnar" ]; then
+ if ! scp root@$computer:$incrementalsnar $SNARFILE.tmp; then
+ diemsg "Could not copy .incremental.snar from $computer"
+ fi
fi
# Move tar file in place
diemsg "Could not run $computer:/root/.backup/preexec"
fi
-for filesystem in $filesystems
-do
+for filesystem in $filesystems; do
# Remove / and $ (for Windows) for path names
sfilesystem=`echo $filesystem | tr '\/\$' '__'`
# Default backuplevel
backuplevel=daglig
- if [ ! -f $storagedir/$computer/$sfilesystem/.date ]
+ if [ ! -s $storagedir/$computer/$sfilesystem/.date ]
then
# Take the first full backup of this filesystem on this computer
backuplevel=full
fi
# We want to be here
- cd $storagedir/$computer/$sfilesystem/$backuplevelmsg || die "$storagedir/$computer/$sfilesystem/$backuplevel does not exist"
+ cd $storagedir/$computer/$sfilesystem/$backuplevel || diemsg "$storagedir/$computer/$sfilesystem/$backuplevel does not exist"
# Perform the actual backup
backup
# Check if this box has a custom number of full backups
- if [ -f $confdir/maksfulle.$computer ] ; then
+ if [ -f $confdir/maksfulle.$computer.$sfilesystem ]; then
+ mf=$((`cat $confdir/maksfulle.$computer`+1))
+ elif [ -f $confdir/maksfulle.$computer ] ; then
mf=$((`cat $confdir/maksfulle.$computer`+1))
else
mf=$(($maxnumfull+1))
fi
# Delete old full backups
- for full in `ls -1t $storagedir/$computer/$sfilesystem/full/*tgz | tail -n +$mf`
- do
+ for full in `ls -1t $storagedir/$computer/$sfilesystem/full/*tgz | tail -n +$mf`; do
prefix=`echo $full | sed "s/\.[^.]*$//"`
echo `date`": $computer:$filesystem Deleting full backup $prefix" >&2
rm $prefix*