Hi,

Axel Beckert wrote:
> Attached a patch which adds such functionality.

That patch still had one bug: Monthly backups of global objects did
not work. The attached updated patch fixes this.

> +             dbdump "$MDB" "$BACKUPDIR/monthly/$MDB/${MDB}_$DATE.$M.$MDB.sql"

That line needs to be

> +             dbdumpglobals "$BACKUPDIR/monthly/$MDB/${MDB}_$DATE.$M.$MDB.sql"

                Regards, Axel
-- 
 ,''`.  |  Axel Beckert <a...@debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE
  `-    |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
Index: autopostgresqlbackup-1.0/autopostgresqlbackup
===================================================================
--- autopostgresqlbackup-1.0.orig/autopostgresqlbackup  2013-05-02 
17:07:19.000000000 +0200
+++ autopostgresqlbackup-1.0/autopostgresqlbackup       2013-05-02 
17:50:15.000000000 +0200
@@ -327,6 +327,18 @@
        return 0
 }
 
+# Global data dump function
+dbdumpglobals () {
+       touch $1
+       chmod 600 $1
+       if [ -n "$SU_USERNAME" ]; then
+               su $SU_USERNAME -c "pg_dumpall $PGHOST -g" > $1
+       else
+               pg_dumpall --username=$USERNAME $PGHOST -g > $1
+       fi
+       return 0
+}
+
 # Compression function plus latest copy
 SUFFIX=""
 compression () {
@@ -428,6 +440,18 @@
                                BACKUPFILES="$BACKUPFILES 
$BACKUPDIR/monthly/$MDB/${MDB}_$DATE.$M.$MDB.sql$SUFFIX"
                        echo 
----------------------------------------------------------------------
                done
+ 
+                # Backup global stuff
+                MDB=globals
+               if [ ! -e "$BACKUPDIR/monthly/$MDB" ]           # Check Monthly 
DB Directory exists.
+               then
+                   mkdir -p "$BACKUPDIR/monthly/$MDB"
+               fi
+               echo Monthly Backup of $MDB...
+               dbdumpglobals "$BACKUPDIR/monthly/$MDB/${MDB}_$DATE.$M.$MDB.sql"
+               compression "$BACKUPDIR/monthly/$MDB/${MDB}_$DATE.$M.$MDB.sql"
+               BACKUPFILES="$BACKUPFILES 
$BACKUPDIR/monthly/$MDB/${MDB}_$DATE.$M.$MDB.sql$SUFFIX"
+               echo 
----------------------------------------------------------------------
        fi
 
        for DB in $DBNAMES
@@ -476,6 +500,49 @@
                echo 
----------------------------------------------------------------------
        fi
        done
+       
+       # Weekly Globals Backup
+        DB=globals
+       
+       # Create Seperate directory for each DB
+       if [ ! -e "$BACKUPDIR/daily/$DB" ]              # Check Daily DB 
Directory exists.
+               then
+               mkdir -p "$BACKUPDIR/daily/$DB"
+       fi
+       
+       if [ ! -e "$BACKUPDIR/weekly/$DB" ]             # Check Weekly DB 
Directory exists.
+               then
+               mkdir -p "$BACKUPDIR/weekly/$DB"
+       fi
+
+       if [ "$DNOW" = "$DOWEEKLY" ]; then
+           echo Weekly Backup of Globals
+               echo Rotating 5 weeks Backups...
+               if [ "$W" -le 05 ];then
+                   REMW=`expr 48 + $W`
+               elif [ "$W" -lt 15 ];then
+                   REMW=0`expr $W - 5`
+               else
+                   REMW=`expr $W - 5`
+               fi
+               rm -fv "$BACKUPDIR/weekly/$DB/${DB}_week.$REMW".*
+               echo
+                       dbdumpglobals 
"$BACKUPDIR/weekly/$DB/${DB}_week.$W.$DATE.sql"
+                       compression 
"$BACKUPDIR/weekly/$DB/${DB}_week.$W.$DATE.sql"
+                       BACKUPFILES="$BACKUPFILES 
$BACKUPDIR/weekly/$DB/${DB}_week.$W.$DATE.sql$SUFFIX"
+               echo 
----------------------------------------------------------------------
+       
+       # Daily Backup
+       else
+               echo Daily Backup of Globals
+               echo Rotating last weeks Backup...
+               rm -fv "$BACKUPDIR/daily/$DB"/*."$DOW".sql.*
+               echo
+                       dbdumpglobals 
"$BACKUPDIR/daily/$DB/${DB}_$DATE.$DOW.sql"
+                       compression "$BACKUPDIR/daily/$DB/${DB}_$DATE.$DOW.sql"
+                       BACKUPFILES="$BACKUPFILES 
$BACKUPDIR/daily/$DB/${DB}_$DATE.$DOW.sql$SUFFIX"
+               echo 
----------------------------------------------------------------------
+       fi
 echo Backup End `date`
 echo ======================================================================
 

Reply via email to