User Tools

Site Tools


backuppc-notes

The command for extracting a tar made with BackupPC_tarPCCopy:

cd newbackupfs/pc
tar -xPv

(the P is important)

Piping the transfe through netcat

on source server:

BackupPC_tarPCCopy  /var/lib/backuppc/pc/hostname | nc mystic 9800

where hostname is the backup host. I had to do each one individually, else it would abort after one or two.

on dest server:

cd /var/lib/backuppc/pc
nc -l -p 9800 | tar -xPpvf -

If getting a heap of “Cant find xx/x/x in pool, will copy file” errors - It could be because at some point backuppc was configured to not use the compressed pool. Try this patch which checks both pools for the file when generating a hardlink for the pipe to tar.

--- /usr/bin/BackupPC_tarPCCopy 2018-10-01 08:52:07.000000000 +0800
+++ /usr/local/bin/BackupPC_tarPCCopy-check-both-pools  2018-10-07 15:01:11.000000000 +0800
@@ -496,6 +496,32 @@
                     }
                     $i++;
                 }
+
+               if ( ! defined($linkName) ) {
+                       # now second take for the non compressed pool (next line sets compressed flag to 0) 
+                       # - no idea why compressed files are making it into there - orlr 201810
+
+                       my $path = $bpc->MD52Path($digest, 0);
+                       my $i = -1;
+
+                       #print(STDERR "didnt find it, trying forcing compression off Looking up $hdr->{fullPath} at $path\n");
+                       while ( 1 ) {
+                           my $testPath = $path;
+                           $testPath .= "_$i" if ( $i >= 0 );
+                           last if ( !-f $testPath );
+                           my $inode = (stat(_))[1];
+                           if ( $inode == $hdr->{inode} ) {
+                               #
+                               # Found it!  Just emit a tar hardlink
+                               #
+                               $testPath =~ s{\Q$TopDir\E}{..};
+                               $linkName = $testPath;
+                               last;
+                           }
+                           $i++;
+                       }
+               }
+
             }
         }
         if ( defined($linkName) ) {

Easy backuppc restore via netcat

In this example the backup hostname is propertywestlocal, and some sample restore directories are given: (as backuppc on server)

BackupPC_tarCreate -h propertywestlocal -n 1464 -s /mnt/space/blockwall-client-mirrors/propertywest.com.au -r /mnt/space/blockwall-client-mirrors/propertywest.com.au -p samba /home/samba | nc localhost 38999

(as root on target pc [backuppc server if you like])

nc -l -p 38999 | tar -xvp
backuppc-notes.txt · Last modified: 2018/11/26 09:00 by snarg