1) Modified main.cpp to save backup db to a tmp file.
authorAlan Jack Pippin <ajp@pippin.(none)>
Mon, 21 Nov 2005 03:35:00 +0000 (20:35 -0700)
committerAlan Jack Pippin <ajp@pippin.(none)>
Mon, 21 Nov 2005 03:35:00 +0000 (20:35 -0700)
2) Modified pack-image.sh to move tmp backup db over the
   existing backup db once it is determined that there
   have not been any errors during the backup process.
3) Fixed bug in pack-image.sh related to handling
   excludedirs properly.

.gitignore
main.cpp
scripts/pack-image.sh

index 32018155de8472633d892cb3d73af516eae3f295..c72ba0b31ef2abbe1bb7ee5df9e559b0650bf37b 100644 (file)
@@ -6,3 +6,4 @@ configure
 depcomp
 install-sh
 missing
+install
index 2dd8048575903ac09b9214e56538db323c149158..81b3b2c897834c056d7bbd75f4ee98f6c3a73267 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -10,7 +10,7 @@
 using namespace std;
 
 static const unsigned int bytes_in_block = 0x800;
-static const char * dbname = "/var/lib/backups/backups.db";
+static const char * dbname = "/var/lib/backups/backups.db.tmp";
 
 unsigned long long read_time( istream &i ) {
   string date_string;
index 9a06f718bfb72a24ea7fbe691de98b40a36fa6bd..4f9c8287c1dc009e8e269dbf77bd45ebcfc93cf0 100755 (executable)
@@ -57,13 +57,12 @@ echo "-> Running find to get the status of files"
 {
   for type in d f l; do
     findformat="$type %#m %u %g %s %CY%Cm%Cd%CH%CM%CS 0 %p\0"
-    if [ -z $excludeddirs ]
+    if [ -z $excludedirs ]
     then 
       find $backupdirs -type $type -printf "$findformat"
     else
-      regex=`echo $excludedirs | sed -e 's/ /.*\\\\|/g'`
-      regex=`echo "'\($regex.*\)'"`
-      find $backupdirs -type $type -o -regex $regex -prune -o -printf "$findformat"
+      echo $excludedirs | sed -e 's/ /\n/g' > $tmpdir/excluded
+      find $backupdirs -type $type -printf "$findformat" | grep -z -v -f $tmpdir/excluded
     fi
   done
 } > $currentfiles
@@ -81,11 +80,12 @@ cat $backups | rsync $rsyncopts / $isomountdir
 if [ $? != 0 ]
 then
   umount $isomountdir
-  rm -rf $isomountdir $isoimage
+  rm -rf $isomountdir $isoimage $backupdb.tmp
   err "Unable to rsync to pack the image"
 fi
 
 echo "-> Copying over database and status file"
+mv $backupdb.tmp $backupdb
 cp $statusfile $backupdb $restorescript $isomountdir
 
 [ $? != 0 ] && err "Unable to copy the database and status file"