hcoop-backup: Take file from stdin and split it.
authormwolson_admin <mwolson_admin@deleuze.hcoop.net>
Wed, 25 Jun 2008 08:01:39 +0000 (04:01 -0400)
committermwolson_admin <mwolson_admin@deleuze.hcoop.net>
Wed, 25 Jun 2008 08:01:39 +0000 (04:01 -0400)
This avoids taking up double-space for each backed up file in the
temporary area.

hcoop-backup
s3.common

index 0bfb73e..39fb266 100755 (executable)
@@ -104,8 +104,8 @@ cat backupfiles | \
 F=hcoop.backup.tar$COMPRESS_EXT.aescrypt
 tar clpf - --ignore-failed-read --no-recursion -C / -T backupfiles | \
   $COMPRESS_PROG | \
-  ccrypt -k $KEYFILE -e > $F
-$MOVE_OVER $F
+  ccrypt -k $KEYFILE -e | \
+  $MOVE_OVER $F
 
 # Acquire lock before messing with spamd
 COUNT=0
@@ -126,9 +126,10 @@ touch $LOCK
 F=common.spamd.tar$COMPRESS_EXT.aescrypt
 tar clpf - --ignore-failed-read -C / /var/local/lib/spamd | \
   $COMPRESS_PROG | \
-  ccrypt -k $KEYFILE -e > $F.new
+  ccrypt -k $KEYFILE -e > $F
 rm -f $LOCK
-$MOVE_OVER $F
+< $F $MOVE_OVER $F
+rm -f $F
 
 vos listvol deleuze | \
   tail -n +2 | \
@@ -147,15 +148,15 @@ cat volumes | \
   bash -c \
     "F={}.dump$COMPRESS_EXT.aescrypt ;
      vos dump -id {} -localauth -clone |
-       $COMPRESS_PROG | ccrypt -k $KEYFILE -e > \$F ;
-     $MOVE_OVER \$F"
+       $COMPRESS_PROG | ccrypt -k $KEYFILE -e |
+       $MOVE_OVER \$F"
 
 echo backing up databases
 F=databases.tar$COMPRESS_EXT.aescrypt
 tar -C /var/backups/databases/ -cf - . | \
   $COMPRESS_PROG | \
-  ccrypt -k $KEYFILE -e > $F
-$MOVE_OVER $F
+  ccrypt -k $KEYFILE -e | \
+  $MOVE_OVER $F
 
 grep '[a-z/]' complain && \
   mail -a 'From: The Backup Program <backups@deleuze.hcoop.net>' \
index 51d3637..09d1e77 100644 (file)
--- a/s3.common
+++ b/s3.common
@@ -31,8 +31,9 @@ function s3_cmd () {
 }
 
 function move_over () {
-    # Move file to its offsite destination
-    # $1: file, $2: relative directory (optional)
+    # Move file to its offsite destination.
+    # Expects the file to come from STDIN.
+    # $1: filename, $2: relative directory (optional)
     if test -z "$1" || test -n "$3"; then
         echo "Bad programming"
         exit 1
@@ -42,12 +43,11 @@ function move_over () {
     if test -n "$2"; then
         DEST=$DEST/$2
     fi
-    split -d -b ${CHUNKSIZE}m $FILE ${FILE}.
+    split -d -b ${CHUNKSIZE}m - ${FILE}.
     for i in ${FILE}.*; do
         s3_cmd put $DEST/$i $i
         rm -f $i
     done
-    rm -f $FILE
 }