SNARFILE="${storagedir}/${computer}/${sfilesystem}/.incremental.snar"
incrementalsnar="/root/.backup/${sfilesystem}.snar"
- if [ "$backuplevel" = "daglig" ]
- then
+ if [ "$backuplevel" = "daglig" ]; then
# If incremental backup, we need to copy the incremental status to $computer.
# If it does not exist, whine a bit and then run date-based instead.
if [ -s "$SNARFILE" ]; then
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
mv $TARFILE $DATE.tgz
- mv $SNARFILE.tmp $SNARFILE
+ if [ "$incrementalsnar" ]; then
+ mv $SNARFILE.tmp $SNARFILE
+ fi
# Update timestamp
echo $DATEs > ../.date && touch -t $DATE ../.date
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 ]
- then
+ if [ ! -s $storagedir/$computer/$sfilesystem/.date ]; then
# Take the first full backup of this filesystem on this computer
backuplevel=full
- echo $DATEs > $storagedir/$computer/$sfilesystem/.date
fi
# Check if we want a full backup
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*
if ! ssh root@$computer "[ ! -f /root/.backup/postexec ] || /bin/bash -x /root/.backup/postexec" >&2; then
diemsg "Could not run $computer:/root/.backup/postexec"
fi
+
+echo `date`": $computer: Backup completed successfully."
+echo `date`": $computer: Backup completed successfully." >&2
# Remove lockfile
rm $LOCKFILE