Roy Keene writes:
> I've added the ability for the clients to send me a hash of the
> file and I'm pretty much ready to start integrating into BackupPC.
> I need some help at this point. How should I proceed ?
> Do we need to work out a new Perl module or would you like me to make
> "libbackuppc" (not "libbackuppcd") in C to do the leg work. If so, what's
> the file format, etc ?
Let's try doing the whole thing in C. This would look like a
new XferMethod. BackupPC_dump (in perl) would then call the
XferMethod-specific handling code (in perl) which would system
the transport program (in C) - similar to what it does currently
for smbclient, ssh/tar etc. However, in this case the handling
code would do little or nothing after is execs the C program.
The C program writes to the XferLOG file and the NewFileList file
(the list of files that don't match the pool). We can decide what
program arguments are necessary (eg: do incremental/full etc) so
that the C code doesn't have to parse any of the perl config files.
Some subset of the following perl modules will need to be implemented
BackupPC::Attrib: read/write the attrib file format
(contains all the meta data per directory)
BackupPC::FileZIO: read/write compressed data files
(used for all data and meta files)
BackupPC::PoolWrite: compare/link files in pool
BackupPC::View: merges incr/full backups to create an
accurate "view" of a given backup. Needed
for incrementals. Needs to support future
I would be happy to explain these in more detail and perhaps
could help write some of this code.
> The first step I'm wanting to take is to do incremental updates by
> replacing changed files (rather than RDIFF'ing them).