Exclude tmp dir from pruning
[wizbackup.git] / wizbackup
index e2c772988fd6c7df073892141de6626ed17a8f3f..034651a997fd3747d17f4c4c257ed3bda82796df 100755 (executable)
--- a/wizbackup
+++ b/wizbackup
@@ -12,8 +12,7 @@
 # or (at your option) any later version.
 
 
-if [ $# -lt 2 ]
-then
+if [ $# -lt 2 ]; then
        echo "Usage: $0 SOURCE DEST [RSYNC_OPTS]"
        exit 1
 fi
@@ -81,7 +80,8 @@ do_backup()
        set +o pipefail
 }
 
-do_link()
+
+do_init()
 {
        # Safety net (4 slashes just in case)
        case "$DEST" in
@@ -93,16 +93,21 @@ do_link()
                mkdir -p "$DEST" || exit 667
        fi
 
-       pushd "$DEST" >/dev/null || exit 668
+       cd "$DEST" || exit 668
+}
 
-       # Remove old backups
-       local old="`ls | head -n -$N_SNAPSHOT`"
+do_prune()
+{
+       local old="`ls | grep -v tmp | head -n -$N_SNAPSHOT`"
        if [ ! -z "$old" ]; then
                echo "$(date): Removing oldest snapshot(s): $old..."
                rm -rf "$old" || exit 669
        fi
+}
 
-       local newest=`ls | tail -n 1`
+do_link()
+{
+       local newest=`ls | grep  -v tmp | tail -n 1`
        if [ -z "$newest" ]; then
                echo "$(date): No previous snapshot found, performing a full backup!"
        elif [ -d "$DEST/tmp" ]; then
@@ -113,8 +118,6 @@ do_link()
                # Perhaps we could save time by recycling the oldest snapshot
                cp -lR "$DEST/$newest" "$DEST/tmp" || exit 670
        fi
-
-       popd >/dev/null
 }
 
 do_test()
@@ -138,6 +141,8 @@ do_test()
 if (( `id -u` != 0 )); then { echo "Sorry, must be root.  Exiting..."; exit; } fi
 
 echo "$(date): START backup: $SRC -> $DEST"
+do_init
+do_prune
 do_test
 do_link
 do_backup