Cleanup tmp directory if cp -lR fails
authorFSF BOFH <sysadmin-nonrt@fsf.org>
Tue, 26 Jul 2011 22:05:43 +0000 (18:05 -0400)
committerFSF BOFH <sysadmin-nonrt@fsf.org>
Tue, 26 Jul 2011 22:05:43 +0000 (18:05 -0400)
wizbackup

index e023ab986d0d59f5859c36a4c35494b2c83854fe..f857379346de4bb5e38bace10e2d9e14c05e9598 100755 (executable)
--- a/wizbackup
+++ b/wizbackup
@@ -26,8 +26,8 @@ if [ $# -lt 2 ]; then
        exit 1
 fi
 
-# Fail on any error; Treat undefined variables as errors
-set -e -u
+# Treat undefined variables as errors
+set -u
 
 #####################################################################
 # CONFIGURATION
@@ -125,12 +125,20 @@ do_link()
                echo "$(date): Linking snapshot $DEST/$newest to $DEST/tmp"
                # TODO: Creating the hardlinks takes a lot of time.
                # Perhaps we could save time by recycling the oldest snapshot
-               cp -lR "$DEST/$newest" "$DEST/tmp" || exit 670
+               cp -lR "$DEST/$newest" "$DEST/tmp"
+               RESULT=$?
+               if [ $RESULT -ne 0 ]; then
+                       echo "$(date): Failed to setup tmp snapshot: $RESULT. Cleaning up."
+                       rm -rf "$DEST/tmp"
+                       exit $RESULT
+               fi
        fi
 }
 
 do_test()
 {
+       # TODO: test for free space and free inodes in the $DEST filesystem
+
        # Avoid clobbering the latest snapshot if the remote host does
        # not allow us to connect
        # --contimeout: sometimes hangs on connection...