Added in-line compression to pgsql and mysql handlers, appears to work fine in tests
authorMicah Anderson <micah@riseup.net>
Sat, 10 Jun 2006 00:25:16 +0000 (00:25 +0000)
committerMicah Anderson <micah@riseup.net>
Sat, 10 Jun 2006 00:25:16 +0000 (00:25 +0000)
ChangeLog
handlers/mysql
handlers/pgsql

index b1e9fd700ddfcf2dc6d9284d8398a60b0972131a..09f0d0c4d06bd14a7f50f380755ea41ade55ccd8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,11 +15,13 @@ version 0.9.4 -- unreleased
         . Fixed erroneous removal of tmpfile when it didn't exit
         . Fixed inversed vsname emptiness check
         . Fixed su quote usage to be more posixy
+        . compress for sqldumps now happens in-line to save some disk space (Closes: #370778)
        pgsql:
         . Fixed inversed vsname emptiness check
         . Fixed su quote usage to be more posixy
         . Fixed shell expansion, thanks Thomas Kotzian (Closes: #363297)
         . postgres user UID is now the one from inside the vserver if necessary
+        . compress now happens in-line to save some disk space (Closes: #370778)
        svn:
         . Fixed inversed vsname emptiness check
        rdiff:
index 52193f4ec0afa8642dd0daaf7ddc299315952f1f..a19509bf062545b0192b42db6974d49fa9a5d060 100644 (file)
@@ -249,9 +249,17 @@ fi
        do
                if [ $usevserver = yes ]
                then
-                       execstr="$VSERVER $vsname exec $MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $vroot$dumpdir/${db}.sql"
+                   if [ "$compress" == "yes" ]; then
+                      execstr="$VSERVER $vsname exec $MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db | $GZIP > $vroot$dumpdir/${db}.sql.gz"
+                   else
+                      execstr="$VSERVER $vsname exec $MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $vroot$dumpdir/${db}.sql"
+                   fi
                else
-                       execstr="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $dumpdir/${db}.sql"
+                   if [ "$compress" == "yes" ]; then
+                      execstr="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db | $GZIP > $dumpdir/${db}.sql.gz"
+                   else
+                      execstr="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $dumpdir/${db}.sql"
+                   fi
                fi
                debug "su $user -c \"$execstr\""
                if [ ! $test ]
@@ -268,13 +276,6 @@ fi
                        fi
                fi
        done
-       
-       if [ "$compress" == "yes" ]
-       then
-               output=`$GZIP -f $vroot$dumpdir/*.sql 2>&1`
-               debug $output
-       fi
-fi
 
 # clean up tmp config file
 if [ "$dbusername" != "" -a "$dbpassword" != "" ]
index 0c72c82ec04294ee6a0f610a1e196aa9f9be2c0a..435bccab92bb0af12616c232b05bc864e9c34250 100644 (file)
@@ -76,9 +76,17 @@ chmod 700 $vroot$backupdir
 # if $databases = all, use pg_dumpall
 if [ "$databases" == "all" ]; then
     if [ $usevserver = yes ]; then
-       execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMPALL > $backupdir/${vsname}.sql\""
+       if [ "$compress" == "yes" ]; then          
+          execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${vsname}.sql.gz\""
+       else
+          execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMPALL > $backupdir/${vsname}.sql\""
+       fi
     else
+       if [ "$compress" == "yes" ]; then
+          execstr="su - postgres -c \"$PGSQLDUMPALL | $GZIP > $backupdir/${localhost}-all.sql.gz\""
+       else
        execstr="su - postgres -c \"$PGSQLDUMPALL > $backupdir/${localhost}-all.sql\""
+       fi
     fi
     debug "$execstr"
     if [ ! $test ]; then
@@ -96,11 +104,18 @@ if [ "$databases" == "all" ]; then
 # else use pg_dump on each specified database
 else
     for db in $databases; do
-       if [ $usevserver = yes ]
-           then
-           execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\""
+       if [ $usevserver = yes ]; then
+           if [ "$compress" == "yes" ]; then
+              execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\""
+           else
+              execstr="$VSERVER $vsname exec su - postgres -c \"$PGSQLDUMP $db | > $backupdir/${db}.sql\""
+           fi
        else
-           execstr="su - postgres -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\""
+           if [ "$compress" == "yes" ]; then
+              execstr="su - postgres -c \"$PGSQLDUMP $db | $GZIP > $backupdir/${db}.sql.gz\""
+           else
+              execstr="su - postgres -c \"$PGSQLDUMP $db > $backupdir/${db}.sql\""
+           fi
        fi
        debug "$execstr"
        if [ ! $test ]; then
@@ -117,10 +132,5 @@ else
     done
 fi
 
-if [ "$compress" == "yes" ]; then
-    output=`$GZIP -f $vroot$backupdir/*.sql 2>&1`
-    debug $output
-fi
-
 return 0