==== Notes on transfering backuppc pc directories *with* hardlinks ====
=== Untarring with hardlinks ===
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